인공지능/공부

딥러닝 개론 1 ~ 7강 정리

이게될까 2024. 6. 14. 16:49
728x90
728x90

빠르게 후딱후딱 넘어가겠씁니다.

자세한건 여기서...

2024.04.22 - [인공지능/공부] - 딥러닝개론 정리 1 - 머신러닝, 딥러닝, backpropagation, 잡음 주입, 정규화, 규제화

 

딥러닝개론 정리 1 - 머신러닝, 딥러닝, backpropagation, 잡음 주입, 정규화, 규제화

인공지능 - 인간의 지능을 모방하여 사람이 하는 일을 기계가 할 수 있도록 하는 기술 머신러닝 - 데이터의 특징을 스스로 판별하지 못한다. 딥러닝 - 데이터의 특징을 스스로 분석하여 답을 찾

yoonschallenge.tistory.com

2024.04.22 - [인공지능/공부] - 딥러닝개론 정리 2 - Convolution, CNN, 합성곱

 

딥러닝개론 정리 2 - Convolution, CNN, 합성곱

공간 데이터(이미지)를 FCN하기 위해 1차원으로 변환하는 순간 형상정보가 분산 되기 때문에 패턴 인식이 어렵다. 또한 파라미터의 개수, 연산량의 기하급수적으로 증가하기 때문에 이미지 데이

yoonschallenge.tistory.com

 

1강 - 딥러닝 개요

인공지능 - 인간의 지능을 모방하여 사람이 하는 일을 컴퓨터가 할 수 있도록 하는 기술 

머신러닝 - 인간이 특징을 뽑아 컴퓨터에 전달하면 컴퓨터가 특징을 통해 classification or regression 진행 

딥러닝 - 그냥 그대로 데이터를 전달하면 컴퓨터가 스스로 분석 후 출력 

머신러닝 학습 과정
학습 단계 - 데이터 -> feature 추출 -> 머신러닝 알고리즘 적용 -> classification / predicion model
예측 단계 - 데이터 -> feature -> 모델에서 예측 -> 결과 

Feature extraction - 어던 특징을 가지고 있는지 찾아내고, 데이터를 벡터로 변환 

지도 - 특정 task에 따른 label을 주고 정답을 맞추려고 학습
비지도 - data의 정답이 없고, 비슷한 데이터 끼리 묶는다.
강화학습 - 주변환경(state)에 따라 행동(action)을 진행하고, 그에 대한 보상(reward)를 받아 보상의 합을 최대화 하도록 진행

딥러닝 모델 학습 과정
데이터 준비 -> 모델 정의 -> 옵티마이저, 손실 함수 등 정해서 모델 컴파일 -> 훈련 -> 예측 

 

 

2강 - 순방향 신경망

단층 퍼셉트론으로는 XOR gate 표현 불가 - XOR(x1,x2)=AND(NAND(x1,x2),OR(x1,x2)) 로 다층 퍼셉트론 생성 

activation function - 비선형성을 부여 

Loss function = cost function = 손실 함수 = 비용함수 - 오차를 구하는 방법을 정의해주며 학습하면서 이 오차를 줄이는 방향으로 진행 

 

 

3강 - 신경망 학습 

순전파 feedforward - 데이터를 네트워크에 넣어 예측값을 계산하는 과정

역전파 backpropagation - 예측값과 실제 값의 차이를 통해 weights를 업데이트 하는 과정 

2024.04.17 - [인공지능/공부] - Back propagation 손으로 하나하나 적어보기

 

Back propagation 손으로 하나하나 적어보기

단순하게 이렇게 이어진 네트워크가 있다고 가정하겠습니다. 입력은 x, 가중치와 곱해진 값들은 z, activation함수를 통과하면 h, 출력값은 y_hat입니다. 일단 이 경우에는 loss function으로 binary Cross ent

yoonschallenge.tistory.com

여기에 하나하나 손으로 계산했씁니다.

1 epoch = batch size * iteration개의 데이터 사용 

over fitting 해결 - Dropout, 모델 사이즈 줄이기, 데이터 늘리기, Regularization, 조기 종료, 정규화, 앙상블

 

4강 - 최적화

optimizer - SGD의 파라미터 변경폭이 불안정한 문제를 해결하기 위해 학습 속도와 운동량 조절하는 것 
그냥 learning rate를 때에 따라 적당하게 변경해 Global min을 찾는다고 생각하면 편함 

 

5강 - 초기화와 정규화 

weight init - 너무 작은값, 큰값, 같은값, 0 하지 말고 적당한 분산과 평균 0을 맞춘 값 쓰기 

batch normalization - feature를 쓸모 없는 값으 것을 막아 데이터 왜곡 문제 해결, 이것도 적절한 평균과 분산을 학습한다.

regularization - loss function에 weight 정규화를 추가하여 weight가 너무 커지는 것을 막음 

배깅 - 독립적 모델 여러개를 만들어 그것의 결과값을 합쳐 사용 

dropout - 배깅보다 성능이 떨어지지만 실용적 

 

6강 - 합성곱 신경망 1

feature map과 filter의 Depth는 같아야 한다! - feature의 depth를 늘리고 싶으면 filter 개수를 늘려라

서브 샘플링 = 다운 샘플링 = pooling, stride

feature map size = (input size + 2 * padding - filter size)/ stride +1

점별 conv - Depth 즉 채널 수만 달라진다. 

그룹 conv - 채널을 여러 그룹으로 나눠 각각 conv  = 파라미터와 계산 절약, 채널간 상관관계

깊이별 conv - 채널을 각각 필터에 따로 연산 후 다시 합치기 = 채널별 공간 특징 학습 

깊이별 분리 conv = 깊이별 + 점별 - 표준 conv 보다 연산량 감소 

셔플 그룹 conv - 채널 그룹 간 정보 교환하여 정보다 다양하게 교환 

공간 분리 conv - 필터를 가로방향 한번, 세로방향 한번 진행 = 연산량 감소, 속도 증가 

업 샘플링 - transpose conv + max unpooling 

 

7강 - 합성곱 신경망 2

LeNet - CNN 처음 사용, 단순 구조

AlexNet - CNN을 GPU 2개로 나눠서 각각 진행 

VGGNet - 3*3을 많이 사용하여 최대한 깊게 

GoogLeNet - inception을 통해 각각 다른 feature를 추출하여 인식률이 좋아짐 

ResNet - residual block이 파라미터 감소, skip connection을 통해 back propagation시 기울기 잘 전달 

R-CNN - 비슷한 영역을 계속 통합하여 객체 분할 

728x90