여러가지공부/머신러닝(Machine Learning)

[Neural Networks] NN이란? 구성 및 forward propagation 동작 방식

끄적끄적아무거나 2023. 6. 26. 09:08
반응형

 

목차

     

     

     

     

    NN(Neural Networks)이란?

    그림1

    신경망은 "뉴런"이라고 불리는 작은 단위로 구성되어 있습니다. 각 뉴런은 입력을 받아들이고 이를 처리한 후 출력을 생성합니다. 이 출력은 다른 뉴런에게 전달됩니다. 이러한 뉴런들은 여러 층(layer)으로 구성되어 있으며, 입력층(input layer), 은닉층(hidden layer), 출력층(output layer)으로 구분됩니다.

     

    신경망의 핵심은 가중치(weights)라고 불리는 매개변수입니다. 각 뉴런은 입력과 가중치를 곱한 값을 합산한 후, 비선형 함수인 활성화 함수(activation function)를 통과시켜 결과를 출력합니다. 이렇게 입력과 가중치의 조합을 조정하면서 신경망은 데이터의 복잡한 패턴을 학습할 수 있습니다.

     

    학습 과정에서, 신경망은 주어진 입력과 정답 데이터를 사용하여 예측을 수행하고 오차를 계산합니다. 이 오차를 사용하여 가중치를 조정하고, 오차를 최소화하는 방향으로 학습합니다. 이 과정을 반복함으로써 신경망은 점차적으로 정확한 예측을 수행할 수 있도록 개선됩니다.

     

     

    위 내용은 NN을 설명하는 글입니다. 저는 제가 이해한 내용으로 간단하게 설명하고자 합니다. NN의 목적은 결국 데이터의 학습을 통해 그림1에서의 파란색선과 같이 데이터를 수용하는 예측을 모델입니다. 그림처럼 심하게 휘어진 데이터 형태도 NN을 사용해서 표현이 가능 합니다.

     

     

     

     

     

     

    NN(Neural Networks) 구성

     

     

     

    입력층(Input Layer): 입력 데이터가 들어오는 부분입니다. 예를 들어, 이미지를 처리하는 경우 각 픽셀의 값을 입력으로 받을 수 있습니다. 입력층은 데이터의 특성에 따라 크기와 형태가 달라질 수 있습니다. 위 그림에서 x에 해당하는 값입니다.

     

    은닉층(Hidden Layer): 입력층과 출력층 사이에 위치한 중간 층입니다. 은닉층은 여러 개의 뉴런으로 구성되어 있고, 각 뉴런은 이전 층의 출력을 입력으로 받습니다. 은닉층은 신경망의 학습과정에서 입력 데이터의 특성을 추출하고 복잡한 패턴을 학습하는 역할을 합니다. 보통 여러 개의 은닉층을 사용할 수 있습니다. 위 그림에서 h에 해당하는 값입니다.

     

    출력층(Output Layer): 신경망의 최종 출력을 제공하는 부분입니다. 출력층의 뉴런 수는 문제의 종류에 따라 다르게 설정됩니다. 예를 들어, 이진 분류 문제인 경우 하나의 뉴런을 사용하고, 다중 클래스 분류 문제인 경우 클래스 수와 같은 수의 뉴런을 사용할 수 있습니다. 위 그림에서 y에 해당하는 값입니다.

     

    가중치(Weights)와 편향(Biases): 각 뉴런은 입력과 가중치의 조합을 계산합니다. 가중치는 뉴런의 연결 강도를 나타내며, 학습 과정에서 조정됩니다. 또한, 편향은 각 뉴런에 더해지는 상수 값으로서, 신경망이 더 복잡한 함수를 학습할 수 있도록 도와줍니다. 위 그림에서 각 파란색 라인에서 해당하는 값입니다.

     

    활성화 함수(Activation Function): 활성화 함수는 각 뉴런의 출력을 결정하는 비선형 함수(Non linear)입니다. 입력과 가중치의 조합을 합산한 후, 활성화 함수를 통과시켜 결과를 생성합니다. 이 함수는 신경망이 비선형 문제를 해결할 수 있도록 핵심적인 역할을 합니다. 위 그림에서 히든 레이어나 출력레이어의 동그라미안에 들어 갑니다. 

     

    손실 함수(Loss Function): 손실 함수는 신경망의 출력과 실제 값 사이의 차이를 측정하는 함수입니다. 신경망은 학습 과정에서 손실 함수를 최소화하기 위해 가중치를 조정합니다.

     

     

     

     

     

    NN(Neural Networks) 전방 전파(forward propagation)

    1. 입력 데이터 준비: 입력 데이터를 신경망에 제공하기 전에 적절하게 전처리합니다. 예를 들어, 이미지 데이터의 경우 픽셀 값을 정규화하거나 크기를 조정할 수 있습니다.

     

    2. 입력층으로의 전달: 전처리된 입력 데이터는 신경망의 입력층에 주어집니다. 각 입력 뉴런은 입력 데이터의 특성에 해당하며, 입력값과 가중치의 곱을 계산한 후 편향을 더합니다.

     

    3. 은닉층으로의 전달: 입력층의 출력은 은닉층으로 전달됩니다. 은닉층의 각 뉴런은 이전 층의 출력과 가중치의 곱을 계산하고 편향을 더합니다. 이러한 계산은 은닉층의 모든 뉴런에 대해 반복됩니다.

     

    4. 활성화 함수의 적용: 은닉층과 출력층의 뉴런들은 활성화 함수를 통과합니다. 활성화 함수는 비선형 함수로, 뉴런의 출력을 제한하거나 비선형 특성을 도입하여 신경망이 복잡한 함수를 학습할 수 있게 도와줍니다.

     

    5. 출력층의 계산: 은닉층에서 나온 출력은 출력층으로 전달됩니다. 출력층의 뉴런은 이전 층의 출력과 가중치의 곱을 계산하고 편향을 더합니다.

     

    6. 출력값의 반환: 출력층의 뉴런들이 계산한 출력값은 신경망의 예측값으로 반환됩니다.

     

    위 과정을 통해 예측값을 만들어 내고 예측과 실제 값 사이 차이를 Back Propagation 과정을 통해 각 파라미터 값들을 업데이트 합니다.

    반응형