인공신경망
뉴런
node
- weight : 가중치
- bias : 편향
활성화함수
- sigmoid : 이진분류
- softmax : 다중분류
- ReLU(현재 보편적으로 사용) -> Leaky ReLU
손실함수
과적합 : 적합한 것은 평균이 아니다.
딥러닝 목적 : 손실 함수를 0에 도달하게 만드는 것.
but. 손실이 0이 된다고 좋은 것은 아니다. -> 오히려 일반적이지 않은 학습.
순차적 데이터가 아닌 이상 데이터는 랜덤을 적용해 섞어서 학습해야 테스트시 전체적인 학습이 된 모델을 사용할 수 있음.
비선형 문제를 풀때는 레이어 유닛에 여러개 값을 주면 풀 수 있다.
Adam경우는 잘 풀지 못했다.
레이어를 여러번 쓰는 것과 1레이어로 여러번 돌린거랑 다름.
레이어는
ㅁ
ㅁ ㅁ
ㅁ
ㅁ
예시. 4개의 레이어의 처리를 통합해서 결과를 도출한다.
레이어를 500까지 늘려봤더니 오히려 결과 값이 이상하게 도출되었다.
레이어를 많이 쓰면 처리량이 많아져서 오히려 작동이 잘 안됨.
예전에는 역전파가 불가능했다. 데이터량이 많아지면 처리하기 힘들었기 때문. -> 현재는 미적분을 이용해 해결했음.
역전파 알고리즘은 기울기 소실 문제를 가지고 있음.
은닉층
import keras
from keras import layers
model = keras.Sequential([
layers.Dense(16, input_shape=(16, 16), activation="sigmoid"),
layers.Dense(128, activation="sigmoid"),
layers.Dense(512, activation="sigmoid"),
layers.Dense(10, activation="softmax"),
])
model.summary()
Model: "sequential"
┌─────────────────────────────────┬────────────────────────┬───────────────┐
│ Layer (type) │ Output Shape │ Param # │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense (Dense) │ (None, 16, 16) │ 272 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense_1 (Dense) │ (None, 16, 128) │ 2,176 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense_2 (Dense) │ (None, 16, 512) │ 66,048 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense_3 (Dense) │ (None, 16, 10) │ 5,130 │
└─────────────────────────────────┴────────────────────────┴───────────────┘
Total params: 73,626 (287.60 KB)
Trainable params: 73,626 (287.60 KB)
Non-trainable params: 0 (0.00 B)
Process finished with exit code 0
params가 높을수록 성능이 좋다. -> 처리량은 많아진다.
최적화함수

https://amber-chaeeunk.tistory.com/23
딥러닝) optimizer ( SGD , Momentum , AdaGrad , RMSProp, Adam )
1. Stochastic Gradient Descent (SGD) SGD는 현재 위치에서 기울어진 방향이 전체적인 최솟값과 다른 방향을 가리키므로 지그재그 모양으로 탐색해나간다. 즉, SGD의 단점은 비등방성(anisotropy)함수에서는
amber-chaeeunk.tistory.com
손실함수
MAE : 절대값으로 구함
Regression Loss
MSE : 평균을 구할때 치우침 정도를 보려고 제곱을 해준다.
RMSE : 오차가 너무 커지니까 결과값에 루트를 씌운다.
adam은 정규화를 해줘야 더 똑똑하다.
정확도가 중요한지 속도가 중요한지 방향성에 따라 다름.
Binary Cross Entropy
이진 분류 Loss
Categorical Cross Entropy
다중 분류 Loss
Sparse Categorical Cross Entropy
인코딩
원 - 핫 인코딩
1, 2, 3
[1, 0, 0], [0, 1, 0], [0, 0, 1]
IoU 손실함수라기보단 평가지표 보조적으로 사용
사각형 박스를 어느정도로 널널하게 했는지 확인하는 기법
ㅁㅁ의 전체 범위와 교집합 범위로 나타낸 지표
Total Loss -> 로스를 합쳐서 하나의 로스로 만들고 개별의 로스를 조절함.
정규화
데이터의 민감도 때문에
과적합 방지
정칙화 -> 드롭아웃 -> 원리 랜덤으로 과적합이 심해진 노드를 중단 x
기울기 소실 문제를 해소하기 위해 사용하는 활성화함수 -> 렐루
배치 정규화도 기울기 소실 문제를 해소해 줌.
학습 방식에 대한 심화
교차 검정 발리데이션 데이터를 학습에는 쓰지만 트레인에 포함하진 않는다.
얼리스타핑
과적합이 난 시점을 보고 그것보다 빨리 학습이 끝나도록 설정하는 것.
model checkpoint
savepoint를 지정하고 불러오는 기능.
Transfer Learning
이미 학습한 것에서 새로운 데이터가 들어왔다고 처음부터 학습하진 않는다. -> 추가학습 기법
pre trained model
사전 학습 모델
구조랑 가중치를 저장해야한다.
딥러닝 종류
CNN, RNN, GAN
인간의 감각 종류는 모두 다르니 각 감각 별로 학습해야 하는 데이터 방향이 다름.
convolution -> CNN (합성곱 신경망) 시각적 데이터에 특화되어있음.
imagenet의 등장이후 각광받기 시작
Alexnet
mnist 데이터를 불러와 이미지 데이터 확인
합성곱 -> 특징을 추출
커널은 정사각형 -> 2x2 또는 3x3 식으로 필터를 씌움
풀링 : 데이터 크기를 줄이는게 목표
젤 높은것만 살리는건 max풀링 -> 보편적으로 많이씀
평균 값만 살리는 것 average풀링
전결합층
CNN 파생
Convolution층이 존재 -> CNN
LeNet
AlexNet -> 연산량이 많음
VGGNet -> 층을 늘리면서 연산량을 줄임 -> 하이퍼파라미터 조정을 통해 -> 구조도 단순 -> 많이 사용
GoogLeNet -> 성능은 좋지만 구조가 너무 어려움 수직 구조에서 중간에 수평 구조로 변경됐다가 다시 수직으로 변경
또한 피드백 구조도 있음.
ResNet -> 기울기 소실 문제를 Residual(잔차)를 이용해 획기적으로 해결 합성곱 - 배치 - 렐루 구조
딥러닝의 시작
흐름이 중요한 데이터는 CNN이 잘 안먹힌다.
데이터 유형
수치형 데이터
- 연속형 데이터
- 이산형 데이터
범주형 데이터
- 순서형 데이터
- 명목형 데이터
신호처리
신호데이터에서 정보가 없음 -> 노이즈 필요 없는 데이터
샘플링 레이트
RNN : 회귀 구조로 기울기 소실 문제를 개선 -> 사장 -> 트랜스포머의 등장으로
LSTM / GRU : 자연어 처리 문제를 도와줌.
NLP 자연어 처리
전처리와 후작업으로 나뉨
Embadding 단어 단위로 쪼갬
트랜스포머 구조
부호기
복호기
'Python' 카테고리의 다른 글
| 파이썬 기본 개념 정리 (0) | 2025.11.15 |
|---|---|
| Python에서 Pandas를 이용해 데이터 가공 (0) | 2025.11.13 |