모두의 딥러닝 1~3장

노은서·2024년 10월 3일

딥러닝의 층 구조와 Keras

📌구조 결정

딥러닝은 여러 개의 층이 쌓여 있는 구조

model = Sequential()  ''' (1)                                              
model.add(Dense(30, input_dim=16, activation='relu')) ''' (2)
model.add(Dense(1, activation='sigmoid')) '''(3)
# dense = 각 층의 입력과 출력을 촘촘하게 모두 연결하라는 뜻 

🏷️코드 설명
(1) Sequential() 함수를 model로 선언
(2) Keras의 Sequential()함수는 딥러닝의 한 층 한 층을 model.add()라는 함수를 사용해 추가
(3) (2),(3) 두 개의 층을 쌓음

딥러닝을 설계한다
= 몇 개의 층을 어떻게 쌓을지 & Dense 외에 어떤 층을 사용할지, 내부의 변수를 어떻게 정할지 고민

📌모델 실행

# 딥러닝 모델 실행 
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])  ''' (1)
# 딥러닝은 층들을 한 번만 통과하는 것이 아니라 위아래 여러번 오가며 최적의 모델을 찾음
history=model.fit(X, y, epochs=5, batch_size=16) '''(2)

🏷️코드 설명
(1) model.compile() 함수 : 앞서 만든 model의 설정을 그대로 실행하라
괄호 안 키워드 --> 딥러닝 구조를 어떤 방식으로 구동시키고 마무리할 것인지와 관련
(2) model.fit() 함수 : 층들을 몇 번을 오갈지, 한 번 오갈 때 몇 개의 데이터를 사용할지 정함

딥러닝을 위한 기초 수학

📌미분, 순간 변화율과 기울기

딥러닝을 이해하는 데 가장 중요한 수학 원리는 미분!!

📢 순간변화율이란 ?

y = x^2 그래프에서 x축에 있는 한 점 a
a가 미세하게 '0에 가까울 만큼' 움직이면 y값이 매우 미세하게 변화
--> 실제 움직이는 것이 아니라 방향만 드러내는 정도의 순간적인 변화

📌시그모이드 함수

딥러닝 모델에서 뉴런들은 어떤 입력 받아서 그 입력을 처리한 후, 결과를 출력하게 됨
활성화 함수는 이 출력 결과를 '얼마나 내보낼지' 결정하는 역할

  • 활성화 함수는 모델의 비선형성을 추가해줌 --> 네트워크가 더 복잡하고 유연한 관계를 학습할 수 있음
profile
개발 & 공부 기록

0개의 댓글