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...

더보기