분류 전체보기 (108) 썸네일형 리스트형 [C++] 프로그래머스 순위 그래프 탭에 있는 순위라는 문제 보자마자 예전에 백준에서 풀었던 역사라는 문제가 생각났다 역사 문제에서는 사건의 전후관계를 플루이드 워셜 알고리즘을 파악했었는데 여기서는 같은 원리로 승패를 파악했다 역사 문제 풀때도 이 알고리즘을 전후관계 파악에 쓰는게 되게 생각해내기 어렵다고 느꼈는데 이 문제에서 또 만나서 반가웠다 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 #include #include using namespace std; int player[105][105]; // player[i][j]==1 if player i beats player j int solution(int n, vector r.. Optimization Algorithms neural network 학습을 빠르게 하기 위한 다양한 최적화 알고리즘들이 있다 - Gradient descent with momentum 대부분 그냥 gradient descent를 사용한 것 보다 좋은 성능을 가진다고 한다 이 방법을 사용하기 위해서는 exponentially weigthed averages (EMA)에 대해 먼저 알아야 한다 EMA는 평균을 구할 때 모두 같은 가중치를 주어 구하는 것이 아니라 중요한 데이터는 큰 가중치, 중요하지 않은 데이터는 작은 가중치를 주어 더하는 방법이다 식으로는 θ가 데이터일때 vt=βvt−1+(1−β)θt와 같이 표현할 수 있다 β , 1−β 이런 모양처럼 가중치의 합은 .. Batch Normalization 하이퍼 파라미터의 민감도를 낮추어 매우 깊은 deep network를 사용 가능하게 만들어주는 기법 batch normalization을 알기 위해서는 먼저 batch와 mini-batch가 무엇인지 알아야한다 input으로 데이터 전부를 사용하는 것을 batch라고 한다 하지만 최근에는 데이터가 많아져서 전부 사용하면 메모리도 부족하고 오래걸려 잘 사용하지 않고 mini batch를 사용한다 5000000개의 데이터가 있을 때 이 데이터를 1000개 씩 5000개로 나누면 mini batch 5000개가 있는 것이다 데이터 전부를 사용하는 경우가 별로 없기 때문에 batch라고 하면 거의 mini batch를 말한다고 한다 실제로 사용할 때에는 1000개씩 미리 나누어 놓기 보다는 랜덤으로 1000개를.. Regularization 4 - Early Stopping 마지막으로 공부해볼 regularization 방법 과적합을 막아주는 방법으로 validation set (development set) 과 training data error가 벌어지면 training을 멈추는 방법이다 training set error는 계속 줄어들 수 밖에 없다 하지만 과적합이 일어난다면 dev set error가 커지는 시점이 존재하는데 그림에서 t2 이후이다 training set error가 계속 줄어들도록 t3까지 학습을 하지 않고 t2에서 멈추는 것이 early stopping 이다 ITE4053 : Deep Lerarning ( Hanyang University ) Regularization 3 - Data Augmentation data augmentation은 엄밀히 regularization 기법이라 하긴 어렵지만 비슷한 효과를 가져와서 이렇게 구분을 해보았다 https://arxiv.org/pdf/1806.03852.pdf 소프트웨어적으로 training data를 늘려 과적합을 막고 variance를 줄일 수 있는 방법이다 이 때 주의할점은 label이 유지되도록 augmentation을 해야한다는 점이다 예를 들어 손으로 쓴 숫자 이미지가 있다고 하자 처음 4라는 데이터 하나를 좌우로 회전시켜 2,3번째 데이터를 만든 경우 새로 만든 데이터도 label이 4가 될 것이다 하지만 이렇게 6을 data augementation 시킨다면 너무 많이 회전 시키는 경우 6인지 9인지 모호한 경우가 발생할 수 있다 따라서 data.. Regularization 2 - Dropout regularization Dropout regularization은 매 반복마다 특정 확률로 랜덤하게 unit을 제거하는 방식이다 간단한 네트워크를 만들어 정보를 골고루 보내주니까 feature가 분산되어 overfitting이 방지된다 이랬던 기존의 layer를 랜덤하게 50퍼센트만 선택하여 사용하는 방법이다 dropout은 training시에만 적용하고 test시에는 적용하지 않는다 따라서 이 방법을 구현할때 그대로 사용한다면 test를 진행할 때 scaling이 필요하다 이를 방지하기 위한 방법이 inverted dropout이다 inverted dropout은 input과 weight을 곱하기 전에 unit을 얼마나 남길것인지 정한 keep_prob를 곱해준다 1 2 3 4 keep_prob = 0.8 d = np.ran.. Regularization 1 - L1,L2 regularization 과적합을 막는 regularization 기법 train error와 test error의 차이, variance를 줄일 수 있다 Logistic Regression에서의 regularization 기존의 loss function인 J(w,b)=1m∑mi=1L(ˆy(i),y(i))를 아래와 같이 바꿀 수 있다 J(w,b)=1mm∑i=1L(ˆy(i),y(i))+λ2m‖ 이렇게 loss function을 바꾼 것을 L_2 regularizatoin를 적용했다고 한.. Activation Functions Neural Network 개념은 인공지능 수업때 수학적으로 더 자세히 공부했어서 이번에는 수학적인 것보다 특징을 중심으로 공부해보려고 한다 수식 복습! tunsi-niley.tistory.com/53 Neural Networks 봐도 봐도 헷갈리는 뉴럴네트워크 식의 index가 매번 헷갈린다 sigmoid function을 사용하는 neural networks의 objective function (loss function)을 정의하고 derivative를 구해보려고 한다 먼저 sigmoid funct.. tunsi-niley.tistory.com - sigmoid activation function 중 제일 기초적으로 쓰이는 function \frac{1}{1+e^{-z}} $ g'(z) = g.. 이전 1 2 3 4 5 6 7 8 ··· 14 다음 목록 더보기