[KT AIVLE SCHOOL] 5주차: 딥러닝

ofohj·2023년 3월 4일
0

KT AIVLE SCHOOL AI 3기

목록 보기
5/21
post-thumbnail

와아 딥러닝 너무너무어렵다.
머신러닝과 같은 느낌으로 이 순서대로 코드를 입력하면 됩니다 여러분~ 느낌이긴 했는데 이제 코드가 5배인...

Tensorflow

딥러닝 수업에서는 연결주의 알고리즘인 tensorflow에 대해 배웠다. 인간의 신경처럼 서로 연결된 신경망인 인공신경망을 이용했기 때문에 연결주의 알고리즘이라고 부른다고 한다.

참고)
연결주의에 대해 찾아보다가 재밌어보이는 블로그를 발견했다! chatgpt, dall-e 등의 인공지능 프로그램이 소개되어있다~
👉 https://blog.naver.com/1strider

keras

텐서플로우 중에서도 가장 많이 사용한다는 keras 라이브러리를 배웠다.
keras는 다음과 같이 나뉜다. 둘은 코딩 방식의 차이가 있다!

  • Sequential API
  • Functional API

Sequential API

: 차곡차곡 레이어를 쌓는 방식

📍모델링 순서

  1. 세션 클리어

  2. 모델 선언 (발판 생성)

  3. 레이어 쌓기

  4. 컴파일


📍코드
회귀를 기준으로 작성하였다.

#1. 세션 클리어
keras.backend.clear_session()

#2. 모델 선언
model = keras.models.Sequential()

#3. 레이어 쌓기
model.add(keras.layers.Input(shape = (1,)))
model.add(keras.layers.Dense(1))

#4. 컴파일
model.compile(loss = 'mse', optimizer = 'adam')

Functional API

: Custom 하며 설계 가능한 방식

[모델링 순서]

  1. 세션 클리어

  2. 레이어 엮기

    • sequential에서는 dense를 add했지만, functional api에서는 히든레이어 생성이 가능하다.

    • 히든레이어
      -레이어 수: 얼마나 고수준 feature를 추출할 것인가?
      -노드 수: 추출하려는 feature 수
      -연결된 것으로부터 기존에 없던 새로운 feature를 추출, 재표현
      👉 Feature Representation, Feature Learning

  3. 모델의 시작과 끝 엮기

  4. 컴파일


[코드]

#1. 세션 클리어
keras.backend.clear_session()

#2. 레이어 사슬처럼 엮기
il = keras.layers.Input(shape = (1,))
hl = keras.layers.Dense(512, activation = 'relu')(il) #선택사항
ol = keras.layers.Dense(1,activation = 'linear')(il)

#3. 모델의 시작과 끝 지정
model = keras.models.Model(il,ol)

#4. 컴파일
model.compile(loss = 'mse', optimizer = 'adam')

model.compile

model.compile()에 입력되는 컴파일 방식에 대해 정리하자면 다음과 같다.

  • Linear Regressor

    • loss = mse
    • activation(dense에 입력) = linear(생략가능)
  • Logistic Regressor

    • loss = binary crossentropy
    • activation = sigmoid
    • metrics = accuracy (crossentropy가 완벽하지 않아 평가지표 추가 사용)
  • Multiclass Classification

    • loss = categorical crossentropy
    • activation = softmax
    • metrics = accuracy

0개의 댓글