딥러닝 5

심층 신경망 성능 향상시키기(3)/하이퍼파라미터 튜닝

부스트 코스의 딥러닝 2단계: 심층 신경망 성능 향상시키기 강의를 수강하며 내용정리한 포스팅입니다. ▶ 하이퍼파라미터 신경망을 학습할때 튜닝해야하는 하이퍼파라미터는 학습률, 모멘텀, 아담 최적화알고리즘의 ε과 β1, β2, 층 수, 은닉 유닛 숫자, 학습률 감쇠(learning rate decay), 미니 배치 사이즈 등 무척 많다. 직관에 따라 하이퍼파라미터 튜닝의 중요도를 순서대로 정리하면 다음과 같다. 1순위: 학습률 2순위: 모멘텀, 미니배치 사이즈, 은닉 유닛 수 3순위: 층 수, 학습률 감쇠 (아담 알고리즘의 ε은 10^-8, β1은 0.9, β2는 0.999를 항상 사용하지만 원한다면 튜닝해도 좋다.) ▶ 딥러닝에서의 하이퍼파라미터 튜닝 하이퍼파라미터의 수가 적을 때는 그리드 서치를 통해 최..

심층 신경망 성능 향상시키기(2)/ 편향, 분산

부스트 코스의 딥러닝 2단계: 심층 신경망 성능 향상시키기 강의를 수강하며 내용정리한 포스팅입니다. ▶ 편향(bias)/ 분산(variance) train set와 dev set의 성능에 대해 high bias라고 하면 훈련데이터 셋에 과소적합되어 훈련 데이터에서 조차도 모델의 성능이 나오지 않는다고 이해할 수 있다. 반면 high variance를 가진다고 하면 훈련 데이터에 과적합되어 훈련데이터에선 좋은 성능을 보이지만 개발 데이터 셋에선 좋은 성능을 보이지 않는다고 이해할 수 있다. 따라서 좋은 모델 성능을 내기 위해선 bias와 variance 두 요소를 모두 낮추는 것이 최상의 방법이나, 두 요소를 동시에 낮출 수 없는 상황이라면 감소폭이 더 큰 하나의 요소만이라도 낮추는 것이 성능에 긍정적인 ..

심층 신경망 성능 향상시키기(1) / Train, Dev, Test sets

부스트 코스의 딥러닝 2단계: 심층 신경망 성능 향상시키기 강의를 수강하며 내용정리한 포스팅입니다. ▶ Train/ Dev/ Test sets의 역할과 데이터 분할 train, dev, test 셋을 정하는 것은 알고리즘의 편향과 분산을 더 효율적으로 측정할 수 있도록 하기 때문에 모델의 성능을 높이기 위한 과정을 효율적으로 만든다. 즉 세 세트를 잘 설정하는 것만으로 모델의 성능향상에 긍정적으로 기여할 수 있다. 일반적으로 모델링할 때, train 데이터로 모델을 학습시키고 dev 데이터 셋으로 다양한 모델 중 어떤 모델의 성능이 좋은지 테스트한다. dev 데이터 셋을 통해 나온 최적의 학습성능을 가진 모델로 test 데이터 셋에서 모델의 비편향을 추정하고 모델이 얼마나 잘 작동하는지 확인한다. 머신러..

CNN 추가 개념/ 풀링, 배치정규화, NiN 연결, 잔차연결

파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다. 참고 강의- BatchNormalization 참고 자료- 1x1 convolution / 잔차연결 CNN의 추가 개념에 대해서 간단하게 정리해보고자한다. CNN에 대한 개념과 기본설명은 다음 포스팅을 참고하자. https://westshine-data-analysis.tistory.com/73?category=873079 자연어 처리를 위한 피드포워드 신경망(2)/ 합성곱 신경망, 파이토치 구현 파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다. 참고 강의 ▶ 합성곱 신경망이란 합성곱 신경망은 공간상의 부분 구조를 감지하는 데 적합하기 때문에 이미지 처리에서 많이 사 westshine-data-analysis.tistory.com ▶ 풀..

[Pytorch] CNN을 활용한 성씨 데이터 분류기 구현

파이토치로 배우는 자연어처리 책을 참고하여 작성하였습니다. 코드 출처 본 포스팅은 파이토치로 배우는 자연어 처리 책을 공부하며 따라 작성해본 코드 중에서 좀 더 자세한 설명이 필요하거나 코드에 대해 이해한 부분을 정리해보고자 작성하였다. ▶ 분석 개요 이번 포스팅에서 다뤄볼 데이터셋은 18개 국적의 성씨 10000개를 모은 성씨 데이터 셋으로 데이터 불균형 등의 문제등이 해결되어 이미 전처리가 완료된 데이터를 사용한다. 모델은 다층 퍼셉트론과 CNN을 사용하는데 본 포스팅에선 CNN을 사용한 예제를 풀어보고자 한다. 모델링의 대략적인 진행 과정은 다음과 같다. 토큰들을 정수로 매핑하기 위한 어휘사전을 구축하고 정수로 매핑된 토큰들을 원핫벡터 행렬로 수치화한다. CNN 모델을 구축한 후 학습 및 검증과정을..