boj 1546 평균
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <unordered_map>
#include <set>
#includ...
BOJ 11654 아스키 코드
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <unordered_map>
#include <set>
#includ...
BOJ 11004 K번째 수
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <unordered_map>
#include <set>
#includ...
BOJ 10809 알파벳 찾기
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <unordered_map>
#include <set>
#includ...
BOJ 10039 평균 점수
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <unordered_map>
#include <set>
#includ...
cs231n lecture 6-5, Training Neural Networks
이제 여러가지 hyperparameter 들을 optimization하는 방법을 학습해봅시다.
적은 ecpoch 으로 넓은 범위의 hyperparameter 들을 실험해보고,
그 후에 긴 learning time 에 상세한 hyperparameter 들을 찾아간다.
예제로 보면,
10**uniform(-5,5)가 넓은 범위를 뜻하게된다, 또한 log space 에서 optimization 하는것이 좋다고한다.
결과를 보면, learning rate 가 e-04, reg 가 e-01에서 학습이 잘 된것을 볼 수 있습니다.
이제 이 결과를 가지고 좁은 범위에서 학습해봅시다.
range 를 조정하고...
cs231n lecture 6-4, Training Neural Networks
전체적인 learning process 에 대해 학습해보자.
데이터를 학습하기전에, 머신이 데이터를 잘 학습하기 위해서 데이터를 잘 가공해서 넘겨줘야한다.
위에서도 나왔지만, zero-centered data 를 만들어줘야한다.
이 과정은 데이터를 평행이동시키면된다.
또한 데이터들의 분포를 normalization 해줄 필요가 있다.
데이터를 잘 가공하였다면, 그 후에는 이 가공된 데이터를 학습할 모델을 선정해야한다.
Hidden layer 를 어떻게 구성할지, 어떤 layer 를 쌓을지, CNN을 쓸지 RNN 을쓸지 RCNN을 쓸지
Attention을 걸지 등등의 판단을 해야한다. 또한 layer ...
cs231n lecture 6-3, Training Neural Networks
Weight init 과 비슷한 결을 가지는 Batch normalization 을 살펴보자.
BN 은 Gradient Vanishing, exploding 이 발생하지 않고, 데이터를 빠르게 학습하고자 시작된 normalization 입니다.
위에서는 activation의 연산량을 줄여서 학습 속도를 올리거나, learning rate 를 올리는 등의 작업을 하였습니다.
BN 은 training 과정 안에서 각 layer 에서 local input을 정규화하는것입니다.
보통 input은 한번에 처리하지 않고, batch별로 처리하게된다.
batch normalizationd은 이 batch를 nor...
cs231n lecture 6-2 Training Neural Networks
데이터 전처리 과정에서는 여러가지가 있지만
대부분은 정규화 작업이다.
zero-centered data 로 만들고, 데이터를 잘 학습할 수 있다록 정규화를 해준다
또한 PCA 와 Whitening 이라는 방법도 있다.
초기에 Neural Network에는 많은 W, b 등등 parameter 가 있다.
이 parameter 의 초기값을 어떻게 설정해야할까?
0으로 초기화하면 학습이 안되므로
일단 작은값으로 랜덤하게 넣어본다고 가정하자.
일단 돌아가기는 하는데 많은 문제가 있다.
작은 값으로 init 할경우,
초기 layer 는 가우시안분포를 잘 따르지만
뒤로갈수록 gradient 가 작아져...
cs231n lecture 6-1, Training Neural Networks
Deep learning 에는 여러가지 active function 들이 있다.
이 active function들은 non linear function으로 구성되게 된다.
예전에는 많이 썻던 sigmoid 함수 이다.
여기는 여러가지 문제가 있다
첫 번째 문제로, back prop하는 과정에서, gradient 가 죽을 수 있다는것이다.
sigmoid 의 양,음의 극단을 보면 gradient 가 0에 수렴하는것을 볼 수 있다.
작은수에 대해서, 큰수에 대해서 영향력이 없고 뒤로갈수록 gradient 가 0으로 수렴한다는것을 알 수 있다.
또한 chain rule 에 의해 gardient 는 계속 곱해...
BOJ 2997 소수 구하기
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <unordered_map>
#include <set>
#includ...
BOJ 2577 숫자의 개수
#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <stack>
#include <deque>
#include <map>
#include <unordered_map>
#include <set>
#includ...
전체 글 228개, 19 페이지