T'SPACE

다채로운 에디터들의 이야기

컴퓨터공학/인공지능

딥러닝과 뉴런, 파이썬 케라스 코드

Tonny Kang 2024. 7. 29. 10:32
반응형

딥러닝이란 무엇인가?


딥러닝은 기계 학습의 한 접근 방식으로, 깊이 있는 계산 스택이 특징입니다. 이러한 깊은 계산이 딥러닝 모델이 복잡하고 계층적인 패턴을 파악할 수 있게 해주며, 이는 가장 도전적인 실제 데이터셋에서 발견됩니다.
신경망은 이러한 강력함과 확장성을 통해 딥러닝의 대표적인 모델이 되었습니다.

728x90

선형 유닛 Linear Unit


y=wx+b

신경망의 연결에는 w라고 하는 가중치가 있습니다. 값이 연결을 통해 흐를 때마다, 그 값을 연결의 가중치로 곱합니다.

신경망은 가중치를 수정함으로써 "학습"합니다.

b바이어스 (bias) 라고 불리는 특별한 종류의 가중치입니다. 바이어스는 입력 데이터와 연관되지 않은 출력 값을 조정할 수 있게 해줍니다.

다중 입력

 


하나의 뉴런에 더 많은 입력 연결을 추가하여 각 추가 특징마다 하나의 연결을 가질 수 있습니다. 출력을 계산하기 위해 각 입력을 그 연결의 가중치와 곱한 다음, 이들을 모두 더합니다.

반응형

케라스에서 선형 유닛


케라스에서 모델을 생성하는 가장 쉬운 방법은 keras.Sequential을 사용하는 것입니다. 이는 신경망을 레이어*의 스택으로 만듭니다. 우리는 *dense 레이어를 사용하여 위와 같은 모델을 만들 수 있습니다(다음 레슨에서 더 배울 것입니다).

다음과 같이 세 개의 입력 특징('sugars', 'fiber', 'protein')을 받아 하나의 출력('calories')을 생성하는 선형 모델을 정의할 수 있습니다:

from tensorflow import keras
from tensorflow.keras import layers

# 1개의 선형 유닛으로 네트워크 생성
model = keras.Sequential([
    layers.Dense(units=1, input_shape=[3])
])

첫 번째 인자인 units로 원하는 출력의 수를 정의합니다. 이 경우 'calories' 하나만 예측할 것이므로 units=1을 사용합니다.

두 번째 인자인 input_shape로 입력의 차원을 케라스에 알려줍니다. input_shape=[3]으로 설정하면 모델은 세 개의 특징('sugars', 'fiber', 'protein')을 입력으로 받을 수 있습니다.

이제 이 모델은 훈련 데이터에 맞춰 조정될 준비가 되었습니다!

반응형