[boostcamp] Day 11. 새로운 한 주의 시작

Jaeyeon Kim·2023년 3월 20일
1

Naver Boostcamp AI Tech

목록 보기
12/29

벌써 전체 과정의 10프로가 끝났고, 새로운 한 주가 시작됐다.
이번주도 열심히 해보자 ,,!

오늘 배워간 것

알고리즘 스터디

from string import ascii_lowercase 라는 라이브러리를 통해서 영어 소문자를 숫자로 바꿀 수 있었다!
가끔 하나씩 조건을 놓쳐서 문제를 제대로 파악하지 못하는 경우가 생긴다.
조건을 꼼꼼히 읽는 연습을 하자!
functools.cmp_to_key : C++에서 조건문으로 정렬하는 것처럼 python에서도 가능하다.

DL Basics

Optimization Algorithms
Deep learning 모델이 학습 데이터에만 잘 대응하는 것이 아닌,
학습하지 않은 데이터에도 잘 대응할 수 있도록 하는 여러 방법론들이 있다.

Dropout, Early stopping, k-fold validation, Weight decay, Batch normalization, MixUp, Ensemble, Bayesian Optimization 등

Boostrapping
학습 데이터가 고정되어 있을 때 그 안에서 서브 샘플링을 하여 여러 모델을 만드는 방법을 뜻한다. 추론을 진행할 때도, 여러 모델에 값들을 넣고 결과의 평균치를 사용하는 식으로 ensemble을 진행한다.

Flat / Sharp Minimum
같은 극솟값이라도, 기울기가 작은 부분에서의 극솟값과 큰 부분에서의 극솟값이 존재하는데, Test 시에는 기울기가 작은 부분에서의 극솟값이 데이터의 변화에 General하게 대응할 수 있다.

Optimizers

Momentum
한 번 흘러간 gradient를 어느 정도 유지 시켜준다. 물리에서의 관성처럼 원래 가려는 방향을 유지하는 성질과 비슷한 것 같다.

Adagrad
값이 많이 변한 파라미터들은 적게 변화 시키고, 값이 적게 변한 파라미터는 많이 변화하게끔 해서 파라미터의 전체적인 변화량을 비슷하게 유지한다. 하지만, 파라미터의 변화값들이 G에 저장되며, 무수히 커지면 파라미터의 업데이트가 멈춘다

Adadelta
위의 문제를 해결하기 위해서, window처럼 일정 시간 동안만의 파라미터 변화만 고려해서 파라미터의 변화량을 조정한다. 가장 큰 특징은, 학습률이 식에 들어가지 않는다는 점이다. G를 통해서 조절하기 때문이다.

RMSprop
Adagrad에 Step size를 추가한 폼인데, 잘 된다고 한다.

Adam
gradient 정보에 따라 adaptive하게 파라미터를 수정하고, 이에 더해 momentum까지 유지한다.

CNN

파라미터 계산
filter_size * #_of_input_channel * #_of_output_channel

layer 하나하나 쌓아가면서 모델 만드는 것이 신기하고 재밌다,,!
알아야 할 게 역시 많은 것 같다.


서두르지 말고,
한 발짝씩 나아가기

profile
낭만과 열정으로 뭉친 개발자 🔥

1개의 댓글

comment-user-thumbnail
2023년 3월 23일

화이팅!!

답글 달기