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

다층 퍼셉트론은 신경망의 가장 기본적인 형태 중 하나로, 여러 층의 뉴런(인공 신경 세포)으로 구성되어 있습니다. 이 구조는 입력층, 하나 이상의 은닉층, 그리고 출력층으로 구성됩니다. 각 뉴런은 전 층의 뉴런으로부터 입력을 받고, 가중치(weight)와 활성화 함수(activation function)를 통해 출력을 생성합니다.기본 구조
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 오차 역전파 ) -> 손실함수 기준을 만족할 때까지 반복
다음 블로그에서 오차 역전파의 개념을 알아보자!