딥러닝 기초 - 신경망 모형

박종일·2024년 4월 23일
0

딥러닝기초

목록 보기
4/5

신경망 모형

인간의 뇌는 수많은 뉴련으로 구성되어 있으며, 이러한 뉴런들은 다른 뉴런으로부터의 정보를 수용,처리 및 전달한다. 인공 신경망은 뉴런으로 구성되는 생물학적 신경망을 모방하여 만든 정보 처리를 위한 수학적 모델이다.

  • 학습이 용이함: 신경망 자체는 특별한 정보 그 자체를 가지고 있지 않지만, 데이터를 통한 반복적인 학습을 통해 원하는 결과의 출력이 가능하다.
  • 효율적인 병렬처리 : 각 node별로 독립적인 계산을 수행한다.
  • 다양한 문제에 적용 가능 : 분류 뿐만 아니라 예측, 특성 추출 등 머신 러닝의 여러 task 수행이 가능하다.

다층 퍼셉트론은 신경망의 가장 기본적인 형태 중 하나로, 여러 층의 뉴런(인공 신경 세포)으로 구성되어 있습니다. 이 구조는 입력층, 하나 이상의 은닉층, 그리고 출력층으로 구성됩니다. 각 뉴런은 전 층의 뉴런으로부터 입력을 받고, 가중치(weight)와 활성화 함수(activation function)를 통해 출력을 생성합니다.기본 구조

  • 입력층(Input Layer): 데이터를 신경망에 입력하는 층입니다.
  • 은닉층(Hidden Layers): 입력층과 출력층 사이의 하나 이상의 층입니다. 여기서 데이터의 복잡한 패턴과 특징이 학습됩니다. 은닉층 또한 활성함수 계산을 수행!
  • 출력층(Output Layer): 최종 예측 결과를 출력합니다. 회귀나 분류 등의 문제에 따라 다르게 설계될 수 있습니다. 출력층은 활성 함수 값을 계산하여 출력을 결정한다.
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense
from tensorflow.keras.optimizers import Adam

# 데이터 생성 (여기서는 간단히 예시 데이터를 사용)
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

# 데이터 로드 및 전처리
X, y = make_moons(n_samples=1000, noise=0.2, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# 모델 생성
model = Sequential([
    Dense(10, activation='relu', input_shape=(2,)),  # 입력층과 첫 번째 은닉층
    Dense(10, activation='relu'),                    # 두 번째 은닉층
    Dense(1, activation='sigmoid')                   # 출력층
])

# 모델 컴파일
model.compile(optimizer=Adam(learning_rate=0.01), loss='binary_crossentropy', metrics=['accuracy'])

# 모델 훈련
history = model.fit(X_train, y_train, epochs=100, validation_split=0.1)

# 모델 평가
results = model.evaluate(X_test, y_test)
print("Test Loss, Test Accuracy:", results)

다층 퍼셉트론 구성이며, tensorflow와 sklearn 라이브러리를 사용했다.

결과는 이와 같다.

인공 신경망 학습 방법

순방향 전파 -> 기울기를 통한 매개 변수 갱신( 수치 미분 or 오차 역전파 ) -> 손실함수 기준을 만족할 때까지 반복

다음 블로그에서 오차 역전파의 개념을 알아보자!

profile
존경하는 인물: 스토브리그 백승수 단장(남궁민)

0개의 댓글