딥러닝25 19. RNN(순환신경망) 1. 기본적인 RNN 구조순환신경망: Recurrent Neural Networks(RNN)자연어 처리와 같이 순서정보가 담긴 데이터나 시계열 데이터를 다루는 데 적합 이전순서에서의 상태 결과인 ht-1을 현재 입력 xt와 함께 함수에 넣어주어 현재 상태결과인 ht를 구함.은닉 상태에는 순환신경망이 현재 순서까지 입력 x1, x2, ... ,xt들을 받아오면서 자신의 상태를 업데이트한 기억을 갖고 있음. 2. RNN의 입출력 텐서 형태 첫번째 차원은 미니배치 내의 인덱스, 두번째 차원은 순서 정보, 마지막 차원은 입력 벡터3. 다계층 순환신경망 4. 양방향 다계층 순환신경망 5. 순환신경망 활용 사례 1) 다대일 형태단어 시퀀스에 대해 하나의 출력을 하는 모델입력 문서가 긍정적인지 부정적인지메일이 정상메.. 2024. 6. 6. 12. Visualizing and Understanding 딥러닝 내부 시각화 - Occlusion Experiments입력의 어떤 부분이 classification을 결정했는지 알아보기 위해, 입력 이미지의 일부분을 가린 후 분류를 잘 하는지 확인 - Saliency Maps어떤 픽셀을 보고 이미지를 분류했는지 알아보는 방법 - Gradient Ascent - Deep Dream -Feature Inversion -Texture Synthesis -Neural Style Transfer 2024. 5. 24. 11. Detection and Segmentation 1. Semantic Segmentation이미지의 픽셀들이 어떤 클래스에 속하는지 예측미리 클래스의 수와 종류를 정해놓아야 하며 개별 객체가 구분되지 않는다. 1) Sliding Window기법은 이미지를 쪼갠 후 어느 카테고리에 들어가는지 찾아냄계산량이 매우 많음2) Fully Convolutional Network모든 픽셀에 대해 카테고리 score 계산 이것도 계산량이 매우 많음3) Downsampling 후 UpsamplingUpsampling: Unpooling, Max Unpooling, Transpose Convolution... 2. Classification+Localization이미지를 분류 후 객체의 위치를 박스침Localizatoin은 object가 어디에 있는지 파악하는 것을 의.. 2024. 5. 24. 15장. 실무 환경에서의 프로젝트 연습 평가 결과 언더피팅 -> 수용능력 키우기(더 깊고 더 넓게)평가 결과 오버피팅 -> 정규화 강화 CLI 환경 실습!https://github.com/kh-kim/deep_learning_book_exercise/tree/main/15-practical_exercise 2024. 5. 23. 14. 정규화(regularization) 정규화: 오버피팅을 늦추고 모델이 학습 데이터로부터 적절한 feature들을 학습하여 일반화 오차를 낮춰줄 수 있는 기법이때, 힉습을 방해하는 형태로 학습오차는 높아질 수 있음-> 노이즈에 강인한 모델이 됨 1. 가중치 감쇠(weight decay): 손실함수의 수정을 통한 정규화 방식W에 L2노름을 취하여 노드 사이의 관계를 약화시킴L2 대신 L1노름을 사용할 수 있음. -> 파이토치 옵티마이저 생성시 설정을 통해 구현 2. 데이터 증강(data augmentation): 데이터의 핵심 특징은 간직한 채 노이즈를 더하여 데이터셋 확장하는 정규화 방법1) 소금과 후추 노이즈 추가2) 회전과 이동, 뒤집기3) 생성모델(generative model)을 활용한 데이터 증강->GAN이나 autoencoder.. 2024. 5. 23. 13장. 심층신경망2 1. 평가지표 정확도(accuracy) = (TP+TN) / (TP+FP+FN+TN)정밀도(precision) = TP / (TP+FP)재현율(recall) = TP / (TP+FN)임계값이 높으면 정밀도가 높아지고 재현율이 내려감임계값이 낮으면 재현율이 높아지지만 정밀도가 내려감 F1점수 = 2 x (Recall x Precision) / (Recall+Precision)F1점수는 임곗값이 고정되어 있을때 정밀도와 재현율을 기반으로 계산되므로, 임계값이 다르면 달라질 수 있으므로 F1 점수만으로 모델의 성능을 파악하기는 어렵다. AUROC오른쪽 빨간선아래 구간의 넓이 -> 1일때 가장 좋은 성능, 0.5일때 가장 안좋은 성능모델의 robustness 평가 -> 왼쪽 그래프에서 두 분포 사이의 거리가 멀.. 2024. 5. 15. 12장. 오버피팅을 방지하는 방법 최종 목표: 일반화 오차(generalization error) 최소화오버피팅: 학습 오차가 일반화 오차에 비해서 현격하게 낮아지는 현상언더피팅: 모델이 충분히 데이터를 학습하지 못하여 학습 오차가 충분히 낮지 않은 현상오버피팅으로 인해 학습 데이터에 편향이나 노이즈가 있을 때 이것까지 모델이 학습함으로써 오히려 모델이 일반화 수행이 어려워짐 -> 오버피팅을 피하는 법: 검증데이터셋(validation dataset) 하나의 에포크: 학습(training), 검증(validation)학습과정과 검증과정은 미니배치로 구성된 여러 이터레이션으로 구성검증과정에서는 최적화를 수행하지 않음. 즉, 역전파 계산과 경사하강법 수행 없이 손실 값만 계산 검증손실 값이 줄어드는지 확인하여 오버피팅 여부를 체크 가능 하이.. 2024. 5. 15. 11장. 최적화 하이퍼파라미터: 모델의 성능에 영향을 끼치지만 자동으로 최적화되지 않는 파라미터 1. 모멘텀모멘텀은 시작부터 매번 계산된 그래디언트를 누적하는 형태로 구현(관성을 의미)지역 최소점을 쉽게 탈출할 수 있으며 학습 속도를 가속화할 수 있음 모멘텀 그래디언트: 처음부터 현재까지의 디스카운트 파라미터가 곱해진 그래디언트의 누적 합 하지만 여전히 학습률 튜닝 필요 : 누적된 그래디언트가 파라미터 업데이트에 끼치는 영향도 설정 2. 적응형 학습률학습률을 기본 설정값을 사용하더라도 학습이 잘되는 방법 필요 - 학습률 스케줄링학습률이 크면 학습 후반에 더 나은 손실 값을 얻기 히들고,학습률이 작으면 학습 초반에 너무 더딘 학습을 하게 됨 적응형 학습률: 처음에는 큰 학습률로 가져가되, 현재 에포크의 손실 값이 지난.. 2024. 5. 9. 10. Recurrent Neural Networks RNN: sequential 데이터 학습에 활용 수행하려는 task에 따라 다양한 수의 input과 output을 가짐(one-to-many, many-to-one, many-to-many) RNN에는 hidden state가 추가됨hidden state는 계속해서 업데이트 되지만, 함수 f와 파라미터 W는 매번 동일한 값을 가진다. (예시) RNN을 이용하여 prefix가 주어졌을 때, 어떠한 문자가 출력되어야 하는 지 예측하는 예시위 예씨의 경우 가장 스코어가 높은 값만 사용하게 되면 올바른 결과가 나오지 않는다.확률분포를 사용해서 샘플링했기 때문에 hello를 만들어낼 수 있었는데, 확률분포에서 샘플링하는 방법을 통해 일반적으로 모델에서 다양성을 얻을 수 있게 된다. RNN은 hidden s.. 2024. 5. 6. 이전 1 2 3 다음