6월18일 수업자료 입니다.
- 머신러닝 딥러닝 7장 딥러닝 기초 및 인공신경망(ANN)
🧠 딥러닝(Deep Learning) 요약 정리
1. 신경망 (Neural Network)
신경망은 사람의 뇌 신경세포를 모방한 딥러닝 모델입니다.
기본 구조
입력층(Input Layer) ↓ 은닉층(Hidden Layer) ↓ 출력층(Output Layer) 역할
입력층 : 데이터 입력
은닉층 : 특징 추출 및 학습
출력층 : 최종 결과 출력
한 줄 요약
신경망 = 입력층 → 은닉층 → 출력층으로 연결된 학습 구조
2. 뉴런 (Neuron)
신경망을 구성하는 가장 작은 계산 단위
동작 과정
입력값 받기
가중치(Weight) 곱하기
편향(Bias) 더하기
활성화 함수 적용
다음 층으로 전달
예시출력 = 활성화함수( 입력 × 가중치 + 편향 ) 한 줄 요약
뉴런 = 입력값에 가중치를 적용해 중요한 정보를 전달하는 계산기
3. 활성화 함수 (Activation Function)
뉴런이 전달할 정보를 결정하는 함수
활성화 함수가 없으면 신경망은 단순 선형 모델과 거의 차이가 없습니다.
ReLU
가장 많이 사용하는 활성화 함수
음수 → 0 양수 → 그대로
예시
ReLU(-3) = 0 ReLU(5) = 5 장점
계산이 빠름
학습 효율 높음
사용 위치
대부분의 은닉층
한 줄 요약
ReLU = 음수는 제거, 양수는 그대로 전달
Sigmoid
출력을 0~1 사이 값으로 변환
예시
0.95 → 95% 0.10 → 10% 사용 위치
이진 분류 출력층
예시
스팸 / 정상
합격 / 불합격
암 / 정상
한 줄 요약
Sigmoid = 결과를 확률(0~1)로 변환
4. 에포크 (Epoch)
전체 훈련 데이터를 한 번 학습하는 단위
예시
Epoch = 1 → 전체 데이터 1회 학습 Epoch = 10 → 전체 데이터 10회 학습 특징
너무 적으면 학습 부족
너무 많으면 과적합 가능
한 줄 요약
에포크 = 전체 데이터를 한 바퀴 학습하는 횟수
5. Dropout
학습 중 일부 뉴런을 임시로 끄는 기법
예시
100개 뉴런 Dropout = 0.3 ↓ 30개 비활성화 70개만 학습 목적
특정 뉴런 의존 방지
과적합 방지
한 줄 요약
Dropout = 일부 뉴런을 끄고 학습하여 과적합 방지
6. Early Stopping
검증 성능이 더 이상 좋아지지 않으면 자동으로 학습을 중단하는 기법
예시
Epoch 10 → 성능 증가 Epoch 11 → 성능 증가 Epoch 12 → 성능 감소 ↓ 자동 종료 목적
과적합 방지
불필요한 학습 시간 절약
한 줄 요약
EarlyStopping = 성능이 나빠지기 전에 자동 종료
7. 배치 정규화 (Batch Normalization)
각 층의 출력을 정규화하는 기법
효과
학습 속도 향상
학습 안정성 증가
과적합 완화
특징
평균 0, 표준편차 1에 가깝게 조정
한 줄 요약
배치 정규화 = 학습을 빠르고 안정적으로 만드는 기술
8. Adam Optimizer
신경망 학습 시 가장 널리 사용하는 최적화 알고리즘
특징
학습 속도 빠름
성능 우수
대부분 기본 선택
예시
optimizer='adam' 한 줄 요약
Adam = 가장 많이 사용하는 학습 방법
9. Functional API
Keras에서 더 복잡한 신경망을 만들기 위한 방법
Sequential 모델입력 ↓ 층1 ↓ 층2 ↓ 출력
직선 구조만 가능
Functional API입력 ↙ ↘ 층1 층2 ↘ ↙ 출력
복잡한 구조 가능
장점
다중 입력
다중 출력
분기 구조
한 줄 요약
Functional API = 자유롭게 신경망 설계
10. Wide & Deep 모델
단순 패턴과 복잡한 패턴을 동시에 학습하는 구조
Wide
선형 관계 학습
단순 패턴
Deep
복잡한 비선형 관계 학습
효과
두 가지 정보를 동시에 활용
예시
추천 시스템
광고 예측
한 줄 요약
Wide & Deep = 단순 패턴 + 복잡 패턴 동시 학습
11. 모델 저장 및 불러오기
모델 저장 : model.save("model.keras")
모델 불러오기 : from tensorflow.keras.models import load_model model = load_model("model.keras") 목적
재학습 없이 사용 가능
배포 가능
한 줄 요약
save() = 저장, load_model() = 불러오기