Deep Learning - 회귀, 분류? when? how?

화이티 ·2024년 1월 5일
0

Deep Learning

목록 보기
4/24
  • 회귀: y = wx + b
  • 분류
    이진분류 -> 1개 확률값 출력

    다중분류 -> 클래스 개수만큼 확률겂 출력

신경망 델 설계

1. 회귀

# 뼈대생성 frame
model = Sequential()
# add 기능을 사용해서 층을 하나씩 더해나가보자!
#입력층
model.add(InputLayer(input_shape = (n, ))) 
# n: train column 개수
# 입력특성의 객수 입력
# 중간층 (은닉층)
model.add(Dense(units =10)) #뉴런 10개를 연결 -> 학습능력을 결정
#Dense: 신경망의 핵심파트
model.add(Activation('sigmoid')) #활성화함수
# 츨력층: 1 = 촐력 개수
model.add(Dense(units = 1)) #출력되는 데이터의 형태 설계
#2.신경망 학습방법 및 평가방법 설정
model.compile(loss = 'mean_squared_error', # 모델의 잘못된 정도를 측정하는 일고리즘
              optimizer = 'SGD', metrics = ['mse'])

2. 분류

2.1 이진분류

# 뼈대
model = Sequential()
#입력층
model.add(InputLayer(input_shape = (30,)))
# 중간층 (다층구조) 1번째층 16개, 2번째층 8개 뉴런
model.add(Dense(units = 16, activation ='sigmoid'))
model.add(Dense(units = 8, activation = 'sigmoid'))
#출력층: 출력하고자하는 데이터의 형태를 지정
model.add(Dense(units  =1))
model.compile(loss ='binary_crossentropy', optimizer = 'SGD', metrics =['accuracy'])

2.2 다중분류

# 뼈대
model = Sequential()
# 입력층 (28*28 차원데이터)
model.add(InputLayer(input_shape = (28,28)))
# 중간층(인닉층),첫번쨰 16, 두번째 8
model.add(Flatten()) # 입력받은 2차원의 사진데이터를 1차원으로 병경
model.add(Dense(units = 16, activation ='sigmoid'))
model.add(Dense(units = 8, activation = 'sigmoid'))
# 출력층 (다중분류 > 틀래스 10개)
model.add(Dense(units  =10, activation = 'softmax'))
model.compile(loss = 'categorical_crossentropy', # 다중분류: categorical_crossentropy
              optimizer = 'SGD', metrics = ['accuracy'])


Bonus 정답데이터:

  • 회귀:units 1 -> 연속형 값
  • 2진 분류:units 1
  • 다중분류: units 클래스
profile
열심히 공부합시다! The best is yet to come! 💜

0개의 댓글