728x90

Summary 

* Neural networks 구축하는 방법 살펴보기 

* Liner Unit을 결합/수정하여 복잡한 관계를 지닌 모델화하는 방법 살펴보기

 

<관련 포스팅>
[Intro to Deep Learning] A Single Neuron

Layers

신경망은 일반적으로 뉴런들이 포함한 layers로 구성되어 있음. 

같은 입력 세트를 가진 Linear Unit을 모이면 Dense Layer가 됨. 

2개의 입력과 바이어스를 수신하는 2개의 Linear Unit의 Dense Layer.

 

Activation Function 

신경망은 선형 함수만 학습할 수 있음. 

하지만 현실에서는 비선형(nonlinear)인 것이 대부분임.

비선형을 학습하려면 Activation Function 필요함. 

신경망은 선형함수만 학습 가능하기에 곡선을 학습하기 위한 Activation Function 필요.

일반적인 것은 Rectifier Function 임. max(0,x)

Rectifier Function

Linear Unit에  Rectifier를 붙이면 Rectified Linear Unit(ReLU)이 됨. 

ReLU의 출력은 max(0, w*x+b)가 됨. 

A Rectified Linear Unit

Stacking Dense Layers

비선형성(Nonlinearrity) 때문에 복잡한 데이터 변환을 위해 레이어를 쌓음.(stack layers) 

A stack of dense layers makes "full-connected" network.

Hidden Layer는 출력 레이어 이전에 레이어로 Output 을 볼 수 없음. 

출력의 레이어는 Linear Unit이고, 이러한 네트워크는 특정 숫자를 예측하는 회귀 작업에 적합.

classification 등과 같은 다른 작업에서는 출력 레이어에 Activation Function이 필요함. 

 

Building Sequential Models

Sequential 모델은 리스트 형태로 레이어를 설정함. 

첫번째 레이어가 입력을 받고, 마지막 레이어가 출력함.

 

from tensorflow import keras
from tensorflow.keras import layers

model = Sequential([

	# Hidden ReLU layers
	# 입력2개인 4개의 relu 뉴런을 포함한 dense layer (hidden layer) 를 추가.
	layers.Dense(units=4, activation="relu", input_shape=[2]),	
	#3개의 relu 뉴런을 포함한 dense layer (hidden layer)추가.
	layers.Dense(units=3, activation="relu"), 
    
	# linear output layer
	layers.Dense(units=1),
    
])

 

<관련 포스팅>

[Intro to Deep Learning] A Single Neuron

[Intro to Deep Learning] Deep Neural Networks (현재 포스팅)

[Intro to Deep Learning] MAE, Stochastic Gradient Descent

[Intro to Deep Learning] Underfitting and Overfitting

[Intro to Deep Learning] Dropout and Batch Normalization

 

<참고자료>

* https://www.kaggle.com/code/ryanholbrook/deep-neural-networks


 

https://unsplash.com/photos/n6B49lTx7NM

728x90
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
반응형