본문 바로가기

전체 글27

NN의 몇 가지 팁들(ReLU 사용, weight초기화, dropout과 앙상블) 안녕하세요. 솩코딩입니다. 오늘은 NN의 종류에 대해 배우기 전에, Neural Network를 이용하는 데 있어 몇 가지 팁들을 배워봅시다. 위는 vanishing gradient(기울기가 사라지는 문제)이고, 층이 깊어질수록 경사도가 사라진다는 것 표현해놓은 그림입니다. 이처럼, Activation fuction으로 Sigmoid를 쓰게 되면, chain rule을 이용할 때 0~1사이의 값을 곱하게 되므로 값들이 점점 작아질 수 밖에 없습니다. 따라서 저기 앞에 있는 것은 출력 값 f에 영향을 거의 안 받게 되겠죠. 그래서 학습하기가 굉장히 어려우며 결국 layer가 많아져도 이런 문제가 생기게 되므로 ReLU (Rectified Linear Unit)로 보완해보자는 것입니다. 참고로, 식은 max.. 2022. 1. 28.
XOR 문제 딥러닝으로 풀기/ Back Propagation 안녕하세요 솩코딩입니다 XOR 문제에 대해 알고 계신가요? 0 or 1로 된 순서쌍에서 서로 같은 값을 가진 좌표이면 거짓, 서로 다른 값을 가진 좌표이면 참이라고 칭하여 다음을 좌표평면에 나타내었을 때 이를 직선으로 나눌 수 있을까? 라는 문제였습니다. 직관적으로 볼 때는 이를 나눌 수 없다고 생각할 것입니다. 오늘은 Neural Network를 이용하여 당대의 골칫거리였던 XOR 문제를 풀어봅시다. 이 문제는 하나의 유닛으로는 절대로 풀 수 없다는 것이 수학적으로 증명되었습니다. 그러나 두 개 이상의 유닛(layer)을 합하면 풀 수 있음이 보여졌으나, 그럼 각각의 w,b를 어떻게 학습할 수 있느냐, 불가능하지 않느냐 등의 얘기가 나왔었습니다. 이를 확인해봅시다. 위의 주어진 w,b 조합 외에도 다른.. 2022. 1. 27.
learning rate, overfitting, regularization 안녕하세요. 솩코딩입니다. 오늘은 머신러닝 공부에 팁이 되는 세가지를 공부해봅시다. 만약 learning rate 굉장히 큰 값이면, 즉 스텝이 크게 되면 바깥으로 튕겨나게 되는데요. 이를 overshooting이라고 부릅니다. 그리고 cost function을 확인해보면, 숫자가 아닌 값(nan)이 나옵니다. 반대로 너무 작은 값이면, 최저점이 아님에도 불구하고 stop되는 경우가 있으며 cost function을 출력해보면 숫자가 거의 변화가 없습니다. 환경에 따라 다르므로 정답이 없습니다. 보통 0.01로 잡고 cost ftn을 관찰해서 발산하게 되면 이를 좀 더 작게, 너무 늦게 움직이면 좀 더 크게 잡으면 됩니다. 그리고 값 사이에 큰 차이가 난다면, cost function 값이 치우치게 됩니.. 2022. 1. 22.
Softmax Regression 안녕하세요. 솩코딩입니다. 이전에는 두 개의 클래스가 있을 때 즉, binary classification(0 or 1의 레이블)과 이에 따른 logistic function 이라는 cost function도 같이 공부해보았습니다. 그럼, 여러 개의 클래스가 있을 때는 어떻게 할까요? 여러 개의 클래스가 있을 때 이를 분류하는 방법을 multinomial classification 즉, 다항분류라고 합니다. multinomial classfication 중 softmax classification이 가장 많이 사용되므로 이에 대해 공부해봅시다. 먼저, multinomial classification은 어떤 식으로 진행이 될까요? A, B, C 세 개의 클래스가 있을 때, 각각을 3개로 나누어 A인지 아닌.. 2022. 1. 15.
Logistic Regression 안녕하세요. 솩코딩입니다. 오늘은 로지스틱 회귀에 대해 알아보려 합니다. 정말 중요한 모델인 만큼 꼼꼼히 알아봅시다. logistic classification은 classification 중에서 정확도가 높은 알고리즘으로 알려져 있습니다. regression은 숫자 예측이라면, classification 특히, binary classification은 둘 중 하나를 고르는 모델입니다. 예를 들어 스팸메일인지(spam) 아닌지(ham), 페이스북에서 timeline에서 어떤 게시물을 보여줄지(show) 안 보여줄지(hide), 신용카드 거래에서 합법인지 사기인지 등의 예시가 있습니다. 이를 0,1로 인코딩을 시켜 학습하게 됩니다. spam:1, ham:0/ show:1, hide:0/ fraud:1, l.. 2022. 1. 15.