머신 러닝 딥러닝 인공신경망

2025. 11. 14. 14:14·Python

 

 

인공신경망 

 

뉴런

 

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
'Python' 카테고리의 다른 글
  • 파이썬 기본 개념 정리
  • Python에서 Pandas를 이용해 데이터 가공
dev_user
dev_user
csjang94-dev 님의 블로그 입니다.
  • dev_user
    devJang
    dev_user
    • Category (127)
      • Linux (2)
      • FrontEnd (11)
        • HTML (1)
        • CSS (5)
        • JavaScript (4)
        • React (1)
      • BackEnd (4)
        • node.js (7)
        • Vue.js (1)
      • DB (13)
      • Python (3)
      • GitHub (1)
      • AWS (18)
      • ErrorCode (2)
      • AWS 광주 개발일지(25.08.19~25.01... (55)
        • 교육 25년 8월 일지 (7)
        • 교육 25년 9월 일지 (22)
        • 교육 25년 10월 일지 (2)
        • 교육 25년 11월 일지 (4)
        • 교육 25년 12월 일지 (19)
      • Projects (3)
        • 미니프로젝트(25.08.29) (0)
        • Git Page -> Portfolio제작 (2.. (1)
      • 개념 정리 (1)
      • 유용한 서비스 (3)
  • 인기 글

  • 링크

    • GitHub
    • Portfolio
    • YouTube
    • 개발자 로드맵 사이트
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 전체
    오늘
    어제
  • hELLO· Designed By정상우.v4.10.4
dev_user
머신 러닝 딥러닝 인공신경망
상단으로

티스토리툴바