tensorflow
Keras optimizer 종류|Tensorflow
이번 투고에서는 머신러닝 모델에서 옵티마이저의 역할에 대해 알아보고자 합니다. 또한, 이러한 함수의 이면에 있는 기초적인 수학에 대해서 이해하며, 활용사례와 장점, 단점에 대해서 알아봅시다. 옵티마이저란 무엇인가?? 여러분들은 손실 함수(loss function)는 모델에 제공된 데이터에 대한 성능의 좋고 나쁨을 파악하기 위해 사용된다는 것을 알고 있을 겁니다. 손실 함수는 기본적으로 주어진 훈련 표본에 대한 예측 값과 계산된 값 사이의 차이를 합한 것입니다. 더 좋은 성능을 위해 뉴럴 네트워크가 손실을 최소화하도록 훈련하기 위해, 모델과 손실 함수에 관련된 가중치와 매개변수를 조정할 필요가 있습니다. 이때, 옵티마이저가 굉장히 중요한 역할을 하게 됩니다. 예를 들어봅시다. 길 모르는 언덕을 내려오는 사..
배치 정규화-속도 향상 미세조정|Neural Network
이전 투고에서는 Batch Norm(배치 정규화)이 어떻게 동작하는지 설명하고, Tensor flow에서 어떻게 사용될 수 있는지를 알아보았습니다. 이번에는 Batch Normalization에 관한 이 시리즈를 완료하기 위해서 기억해야 할 코드를 통해 알아보도록 합시다. 디폴트 상태로 실행했다면 모델의 정확도가 올라가지 않아 BN이 무용지물이 되었을 것인데요. 중요한 하이퍼 파라미터인 BN의 모멘텀을 설정하지 않았기 때문입니다. Momentum 앞서 설명한 바와 같이, Momentum은 추론을 위한 밀집된 부분의 평균을 계산할 때 이전 이동평균에 주어진 중요성 중요도이다. Momentum이 어떤 건지 모를 경우 Tensorboard에서 조정할 수 있는 것은 Smoothing 뿐이고요. 운동량은 학습 평..
Segmentation map-도로 이미지 만들기|Pix2Pix
프로젝트 수행 프로젝트를 진행하면서 필수로 수행해야 할 사항은 아래와 같다. 데이터에 한 가지 이상의 augmentation 방법을 적용하여 학습(어떠한 방법을 사용했는지 기재.) 이전에 구현했던 두 개의 Generator 중 Encoder와 Decoder 간에 skip connection이 있는 U-Net Generator를 사용 모델 학습 후, 학습된 Generator를 이용해 테스트한다. 테스트 데이터는 다운로드했던 "val" 폴더 내 이미지를 사용. 1개 이상의 이미지에 대해 테스트 과정을 거친 후 그 결과를 스케치, 생성된 사진, 실제 사진 순서로 나란히 시각화. 모델을 충분히 학습하기에 시간이 부족할 수 있다. 적어도 10 epoch 이상 학습하며 중간 손실 값에 대한 로그를 남기기. 1. S..
[Part5]Sketch2Pokemon-학습 및 테스트하기|Pix2Pix
데이터 준비하기 Generator 구성하기 Generator 재구성하기 Discriminator 구성하기 학습 및 테스트하기(현재 page) Generator와 Discriminator 학습 및 테스트 이번 스탭에서는 구현된 Generator와 Discriminator를 학습시켜보고, 스케치를 입력으로 채색된 이미지를 생성해봅시다. 먼저 학습에 필요한 손실 함수부터 정의하도록 하자. 논문의 여러 실험 결과 중 손실 함수 선택에 따른 결과의 차이는 아래와 같습니다. 레이블 정보만 있는 입력에 대해 여러 손실 함수를 사용해 실제 이미지를 만들어 낸 결과는, 일반적인 GAN의 손실 함수에 L1을 추가로 이용했을 때 가장 실제에 가까운 이미지를 생성해 내었습니다. 이번 실험에서도 두 가지 손실 함수를 모두 사용..
[Part4]Sketch2Pokemon-Discriminator구성|Pix2Pix
데이터 준비하기 Generator 구성하기 Generator 재구성하기 Discriminator 구성하기(현재 page) 학습 및 테스트하기 Discriminator 구성하기 Generator만으로 좋은 결과를 도출하기에는 부족할 것입니다. 조금 더 사실적인 이미지를 생성하기 위한 Pix2Pix를 완성시키기 위해서는 Discriminator가 필요한데, 이번 스탭에서는 Discriminator를 만들어 Pix2Pix 구조를 완성시켜 보는 시간을 가져봅시다. Discriminator의 구성요소 알아보기 아래의 사진은 Pix2Pix 논문에서 Discriminator를 구성하는데 필요한 정보이니, 알아보도록 합시다. Generator의 구성 요소와 똑같이 "C64" 등으로 표기되어 있습니다. 진짜인지 가짜 이..
[Part1]Sketch2Pokemon-데이터 준비하기|Pix2Pix
한강 한강 볼 것이 많아 총 5개의 목차로 나누었습니다. 데이터 준비하기(현재 page) Generator 구성하기 Generator 재구성하기 Discriminator 구성하기 학습 및 테스트하기 데이터 준비하기 이번에는 앞서 알아본 pix2pix 모델에 대해 직접 구현하고 실험하는 시간을 가져보려합니다. 사용할 데이터셋은 Sketch2Pokemon 이라는 데이터셋으로 아래 링크에서 다운 받을 수 있습니다. Sketch2Pokemon info 위 출처에는 학습용 데이터셋에 830개의 이미지가 있으며, 각 (256 * 256) 크기의 이미지 쌍이 나란히 붙어 (256 * 512) 크기의 이미지로 구성되어 있습니다. import os data_path = "/content/drive/MyDrive/data..
배치 정규화-신경망 훈련 속도 향상|Neural Network
뉴럴 네트워크(Neural Network) AI의 기본 구성 요소 중 하나로 매우 매우 복잡하게 이루어져 있다. 뉴럴 네트워크를 사용하는 경우의 중요한 문제 중 하나는 CPU는 물론 GPU에서도 네트워크의 트레이닝에 시간이 오래 걸린다는 것이다. 신경 네트워크는 Back Propagation 알고리즘을 사용하여 문제을 진행한다. 역전파(Back Propagation)를 통해 뉴런은 얼마나 많은 오차를 발생했는지를 학습하고 스스로 오차를 수정한다. 즉, "weights"와 "biases"를 수정한다. 이것에 의해, 입력이 주어졌을 때 올바른 출력을 생성하기 위해 문제를 학습한다. Back Propagation 에는 각 레이어의 구배를 계산하여 역방향으로 전파하는 작업이 포함되어 있다. [The BackPr..
[Tip]Colab 노트북 바로 열기|Github
git에 올라와있는 ipynb 파일을 colab으로 바로 열 수 있는 방법이 있죠. 사용하는 방법은 nbviewer 파일을 여는 것과 비슷한 방법인데요. 사용법은 아래와 같습니다. 만약 git 에 올라온 주소가 아래일 경우 https://github.com/zzocojoa/AIFFEL_EXP.github.io/blob/main/Exploration/%5BE-17%5DSegmentation%20map%E1%84%8B%E1%85%B3%E1%84%85%E1%85%A9%20%E1%84%83%E1%85%A9%E1%84%85%E1%85%A9%20%E1%84%8B%E1%85%B5%E1%84%86%E1%85%B5%E1%84%8C%E1%85%B5%20%E1%84%86%E1%85%A1%E1%86%AB%E1%84%83%E1..