RNN의 문제점RNN은 과거 입력들이 계속 연결된 구조이기에,역전파 과정에서 gradient가 계속 곱해지면서 weight가 1보다 작으면 gradient가 점점 작아져 사라지고(vanishing),1보다 크면 gradient가 점점 커져서 폭발하게 된다(exploding).이러한 문제는 RNN이 장기 의존성을 학습하는 데 큰 방해가 된다.그나마 exploding 문제는 gradient clipping을 하면 되지만, vanishing gradient 문제는 RNN의 구조를 바꿔야 할 필요가 있다.그래서 나타난 것이 LSTM이다. LSTM(Long Short Term Memory)기울기 소실/폭발 문제를 해결하기 위해 등장한 구조로,핵심 아이디어는 '정보를 장기적으로 유지할 수 있는 cell state..
이제 딥러닝 모델의 크기가 점점 커지고 있다.따라서 당연하게도 연산량과 파라미터 수도 증가한다. 이는 메모리, 계산 자원, 배터리 등에 부담을 준다.Vision 분야, NLP 분야 둘 다 그렇다. 따라서 이에 대해 두 가지 해결책을 제시했다. 당연히 이 둘의 목적은 모델 사이즈 축소+계산 효율성 향상+적은 에너지 사용이다. 1. Pruning보라 : 걍 단순 가지치기, 초록 : 가지치기 하고 성능 하락 보완 위해 재학습, 빨강 : 가지치기-재학습-가지치기 ... 불필요한 연결(synapse)이나 뉴런을 제거하는 가지치기 기법이다. 인간의 뇌에서도 자연스럽게 pruning이 수행된다.보통 2-4살 때는 사물의 어떤 것을 기억해야 할지 잘 모르기 때문에 모든 것을 기억하려 한다.이때 synapse per..
CNN Applications Object detectionobject(classification)+region(regression) -> 각 object의 사각범위와 label을 구하는 task Computer vision tasks입력->원하는 출력->새로운 네트워크 구조 설계 Image classification이미지 입력->softmax->클래스 확률, 예측-실제 정답 CE loss로 비교 Semantic segmentation픽셀 단위로 클래스 분류-> CE loss로 픽셀 단위 정답과 예측간 손실 계산, IoU(교집합/합집합)로 학습(but IoU가 미분 불가능하기에 보통 IoU 베이스 soft IoU나 dice 사용)자율주행, 의학이미지, 위성사진 등 하지만 이 semantic segment..
Convolution특징 맵(feature map)은 3차원(h, w, c) 구조를 가진다. 얘네끼리 더하려면 당연하게도 h, w, c가 모두 같아야 한다. 하지만 이어붙이려면 h, w만 같으면 된다. Atrous(Dilated) convolution커널 자체에 stride를 집어넣는다? 라고 생각하면 될 듯하다. 커널의 파라미터 수는 그대로 유지하면서, 커널의 크기를 넓히면서 다양한 공간 해상도의 특성을 포착할 수 있다.위 그림처럼 다양한 크기의 dilation을 병렬로 구성하여 입력에 대한 멀티스케일 context 정보를 추출할 수 있어 효과적이다. 아니면 이렇게 filter composition을 통해 이미지 분할 또는 장면 이해에 사용할 수 있다. Transposed Convolution(Deco..
1. DNN ArchitectureDeep Neural Networks, DNN 은 많은 hidden layer가 있는 NN이다. 큰 데이터셋을 학습시키고 싶을 때 더 많은 연결이 있는 high-capacity model을 사용해야 한다. 일단 층이 깊을수록 일반화가 잘된다. 그리고 sparse connection과 함께라면 일반화가 더욱 잘된다. 이게 모델이 크다고만 해서 학습이 더 잘 되는 것만은 아니다. 첫 번째로, high capacity로 인한 과적합 문제가 발생할 수 있다.이때 해결책은 정말 다양하다. 정규화, Drop-out, 데이터 증강, parameter sharing, sparse connection이 그 해결책이다. 두 번째로, high capacity로 인한 느린 최적화 문제가 발생..
* 일단. normalization과 regularization의 차이는,normalization은 '정규화'로, 데이터를 스케일링하여 0~1 사이의 값으로 만드는 것이다.데이터 불균형을 줄이고 Local Minimum에 빠질 확률을 줄여준다. regularization은 overfitting을 막기 위해 '규제'하는 것이다.weight를 조정할 때 제약을 주는 것. L1, L2 이런 애들..~ 그래서 이 게시글에선 regularization에 대해 알아보겠다. 기존 ML에서는 파라미터가 애초에 적었는데, 딥러닝은 파라미터가 많아지면서 표현력이 늘었다.근데 이렇게 되니까 과적합의 위험도 생기게 된다. high capacity 모델이라 ㅠㅠ 그래서 정규화를 하는데, test data에 잘 일반화되는 모델을..
optimizer.zero_grad()를 쓰는 이유-> 그래디언트의 누적으로 엉뚱하게 업데이트 됨 모델 용량이 클 때의 특징-> 훈련 데이터에 높은 표현력, 과적합 위험 증가, 훈련 시간과 자원 소모 증가 엔트로피가 높다는 것의 의미-> 불확실한 정보다 엔트로피, 쿨백, CE관계-> H(P, Q)=H(P)+KB(P, Q) 활성화함수가 비선형성 가지는 이유-> 안그러면 아무리 층 쌓아도 선형.. ex. ax+b라는 층을 아무리 쌓아도 결과적으로 ax+b임 Bagging, Dropout, L2 (정규화들)구분-> Bagging : 여러 모델 병렬 학습해서 평균내갖고 모델 분산 감소-> Dropout : 한 모델 안에서 학습 시마다 랜덤 구조-> L2 : 한 모델 안에서 손실 함수에 L2 정규화항 적용 Bat..
MLE(Maximum Likelihood Estimation)모델과 표본이 주어졌을 때, 확률분포의 매개변수 추정에 사용되는 통계적 기법모델을 지정하고 -> 우도함수를 정의하고 -> 이 함수를 최대화하는 파라미터를 찾는 과정여기서 우도 함수를 정할 때는, 일반적으로 최대우도(ML)법칙을 사용한다. MLE = argmax ∏ᵢ p_model(xᵢ; θ)로 나타낼 수 있는데, 이건 계산이 어려우니깐 log를 취해서 pi가 아니라 sigma로 바꾼다.예를 들어, 관측된 데이터로부터 평균과 분산을 여러 쌍 추정한 후, 이 데이터가 그 중 어떤 분포에서 온 것인가를 구하는 것이 목표이다.조건부 로그 우도는 이건데.. 왜 하는 건진 몰겠음θ_ML = argmax ∑ log P(yᵢ|xᵢ; θ) Classificat..