[생활코딩/머신러닝야학] 신경망의 완성-히든레이어 및 정리

2021. 1. 21. 21:18·개발/머신러닝
728x90
[개발/머신러닝] - [생활코딩/머신러닝야학] 레몬네이드 판매량 예측(1) - pandas
[개발/머신러닝] - [생활코딩/머신러닝야학] 레몬네이드 판매량 예측(2) - neural network
[개발/머신러닝] - [생활코딩/머신러닝야학] 보스턴 집값 예측
[개발/머신러닝] - [생활코딩/머신러닝야학] 아이리스 품종 분류

 


  • Input Layer- 데이터를 입력받는 계층(입력 계층)
  • Hidden Layer - 입력 계층과 출력 계층 사이에 하나 이상의 계층이 끼어 있는 계층(은닉 계층)
  • Output Layer - 결과값을 만들어 내는 계층(출력 계층)
  • 이런 구조를 [딥러닝-인공신경망]이라 한다.

*실습

1. 모델 구조 확인은 model.summary()를 통해 할 수 있다.

2. 히든 레이어에서 사용되는 활성화 함수 'swish' 최근 발표된 가장 성능이 좋은 활성화 함수이다.(하지만 버전 상의 문제로 'relu'으로 대체

3. 출력층에서 입력되는 값은 입력층의 값(x)이 아니라 히든 레이어층의 값(H)이다.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 라이브러리 사용
import tensorflow as tf # pip install --upgrade tensorflow
import pandas as pd # pip install pandas

#1. 과거의 데이터 준비
iris = pd.read_csv('https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/iris.csv')
print(iris.head())

# 원샷인코딩
iris_incoding_ = pd.get_dummies(iris)
print(iris_incoding_.head())
print(iris_incoding_.columns)

# 독립변수, 종속변수
independent_var = iris_incoding_[['꽃잎길이', '꽃잎폭', '꽃받침길이', '꽃받침폭']] #독립변수
dependent_var = iris_incoding_[['품종_setosa', '품종_versicolor','품종_virginica']]  #종속변수

print('iris 독립변수 = {}, 종속변수 = {}\n'.format(independent_var.shape ,dependent_var.shape))

independent_var_row = independent_var.shape[0]  # 독립변수 행(row)
independent_var_col = independent_var.shape[1]  # 독립변수 열(col)

dependent_var_row = dependent_var.shape[0]  # 종속변수 행(row)
dependent_var_col = dependent_var.shape[1]  # 종속변수 열(col)

#2. 모델의 구조를 만듬(모델생성) -- 멀티레이어 구조
X = tf.keras.layers.Input(shape=[4])# 독립변수의 컬럼개수

# 히든레이어를 3층을 쌓았다.(은닉층)
H = tf.keras.layers.Dense(8, activation="relu")(X)# 히든레이어, 입력층(input)으로 부터 값을 받아 8개의 노드를 생성.
H = tf.keras.layers.Dense(8, activation="relu")(H)# 히튼레이어, 입력값으로 앞의 히든레이어 값을 받아 8개의 노드를 생성.
H = tf.keras.layers.Dense(8, activation="relu")(H)

Y = tf.keras.layers.Dense(3, activation='softmax')(H)# 종속변수의 컬럼개수, 활성화함수 = sottmax 0~1사이의 비율로 결과 출력
model = tf.keras.models.Model(X, Y) # 모델 생성
model.compile(loss='categorical_crossentropy',metrics=['accuracy']) # 모델이 학습할 방법
# loss 외에도 정확도가 주요 평가 지표 정화도(accuracy)


# 모델 구조 확인
model.summary()

# 3. 데이터로 모델을 학습(FIT)
model.fit(independent_var, dependent_var, epochs=10) # epochs = 전체 데이터를 몇번반복 학습할 것인지를 결정해 주는 숫자
model.fit(independent_var, dependent_var, epochs=100, verbose=0) # verbose =0 출력(로그) 표시안함

# 4. 모델을 이용
print('**** predict ****')
print(model.predict(independent_var[5:10])) #독립변수 예측값 확인 [5~10개만]

print('******check result(test)********')# 종속변수 확인
print(dependent_var[5:10])  # 종속변수결과 출력하여 예측한 값이 맞는 지 확인
print('************************************')
# 맨 마지막 데이터 5개
print('**** predict ****')
print(model.predict(independent_var[-5:]))
print('******check result(test)********')
print(dependent_var[-5:])
# 모델의 수식 확인
# print(model.get_weights())

 


점점 재미있어지는 머신러닝😎 층을 많이 쌓는다고 좋은 건 아닌것 같다.  개인 적으로 좀 연구해보고 기록해야겠다.

opentutorials.org/course/4570/28988

 

네번째 딥러닝 - 신경망의 완성:히든레이어 - 생활코딩

수업소개 히든레이어와 멀티레이어의 구조를 이해하고, 히든레이어를 추가한 멀티레이어 인공신경망 모델을 완성해 봅니다.  강의  멀티레이어 신경망 실습  소스코드 colab |  backend.ai 보스

opentutorials.org

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'개발 > 머신러닝' 카테고리의 다른 글

[Google Colab Pro] 코랩 구독 하는 방법  (0) 2022.06.28
[생활코딩/머신러닝야학] 데이터 및 모델을 위한 팁(부록)  (0) 2021.01.21
[생활코딩/머신러닝야학] 아이리스 품종 분류  (0) 2021.01.13
[생활코딩/머신러닝야학] 보스턴 집값 예측  (0) 2021.01.12
[생활코딩/머신러닝야학] 레몬네이드 판매량 예측(2) - neural network  (0) 2021.01.11
'개발/머신러닝' 카테고리의 다른 글
  • [Google Colab Pro] 코랩 구독 하는 방법
  • [생활코딩/머신러닝야학] 데이터 및 모델을 위한 팁(부록)
  • [생활코딩/머신러닝야학] 아이리스 품종 분류
  • [생활코딩/머신러닝야학] 보스턴 집값 예측
호이호이209
호이호이209
이것저것 기록하는 메모장
    250x250
  • 호이호이209
    R=VD
    호이호이209
    • R=VD전체글 (83)
      • 개발 (63)
        • Linux (19)
        • 머신러닝 (10)
        • Git (6)
        • Python (9)
        • 프로그래밍 언어 (2)
        • Docker (5)
        • ETC (12)
      • 일상기록 (20)
        • 여행 (5)
        • 일상-이모저모 (8)
  • 인기 글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
호이호이209
[생활코딩/머신러닝야학] 신경망의 완성-히든레이어 및 정리
상단으로

티스토리툴바