[HUFSTUDY] 인공신경망

Uomnf97·2022년 7월 4일
0
post-thumbnail

+) 코드잇 강의 바로가기

본 정리내용은 코드잇 강의를 공부하며 함께 정리한 내용입니다! 더 정확하고 자세한 내용을 공부하기 위해서는 "코드잇 머신러닝 실전 강의를 참고해주세요!"

Artificial Neural Networks ( 인공신경망 )

인공지능 이란? 기계, 또는 프로그램을 인간처럼 행동하거나 생각하게 만들어 다양한 인간의 작업을 모방하여 처리하여 만들 수 있는 기술을 뜻한다.

인공지능은 Neuron의 영감을 받아 사람의 뇌와 신경계가 어떻게 작동하는지 알아내어, 비슷한 연산방식(Linear function + Activation function)을 이용하여 만든 알고리즘을 인공 신경망, 영어로는 Artificial Neural Network라고한다

딥 러닝(Deep Learning)이 인공 신경망을 기반으로 여러개 층(layer)를 쌓아 올려 만든 알고리즘 기법을 딥러닝이라고 한다. 딥 러닝 알고리즘들은 많은 분야에서 기존에 사용했던 다른 알고리즘들보다 훨씬 더 좋은 성능을 낸다. 이미지를 보고 인식을 하는 컴퓨터 비젼, 인간의 언어를 다루는 자연어 처리, 자동차가 스스로 운전을 하게 하는 자율 주행, 빅데이터 시스템을 가지고 있는 기업의 광고 시스템, 음성인식처리 등 수많은 분야와 결합하여 비약적 발전을 이끌어내었다.

MNIST 데이터

  • MNIST 데이터셋이란? image 데이터셋으로 흑백으로 써놓은 손글씨 이미지 데이터를 모아둔 데이터 셋
  • 크기 : 28 X 28 pixel (784개의 pixel)
  • 각 픽셀은 실제로는 0~255 사이의 숫자로 255에 가까울 수록 밝은 픽셀이며, 0에 가까울수록 어두운 픽셀이다.
    • 각 픽셀은 min-max normalization을 이용하여 회색척도로 만들어서 이용
      • 0~1 사이로 밝기 표현
      • 1에 가까울 수록 밝은 데이터, 0에 가까울수록 어두운 데이터(픽셀)
  • 어떤 숫자인지 태깅이 되어 있음.
  • 목적 : 이미지 데이터가 어떤 숫자인지 예측할 수 있도록 활용하는 데이터

MNIST Logistic Regression

신경망구조(Logistic Regression)

  • 입력변수 : 픽셀데이터 ( image )
  • 출력변수 : 이미지가 어떤 숫자인지 예측
  • 가설 함수
    • 학습 방식 로지스틱 회귀를 통해 값을 Z값을 구하게 되고, 시그모이드 함수를 적용하여 해당 내용을 0~1사이의 값을 매핑하게 된다. 그리고 해당 값이 0~1 사이 중 0.5이상이 될 경우, 해당 숫자에 대한 1의 값을, 아닐 경우 해당 숫자가 0이라고 출력하게 되는 이진 분류에 쓰인다. 그리고 각 숫자에 대한 로지스틱 모델을 만들어, 1일때 로지스틱 모델, 2일 때 로지스틱 모델들을 만들어 학습을 하여 가장 숫자가 큰 값의 모델을 선택하도록 한다.
  • 시그모이드 함수 : 딥러닝의 인공신경망에 쓰이며 모든 값을 0~1사이에 매핑해주기 때문에, 1,0과 같은 이진 분류에서 학습하는데 좋은 성능을 나타내며, 딥러닝의 활성화 함수로 자주 쓰인다.

사람의 신경계

  • 인공지능은 사람의 신경계와 비슷한 원리로 작동함

    인간의 신경계 : 몸 안팎에서 일어나는 변화로 인한 자극을 뉴런이라는 셀을 통해 빠르게 전달해서 그에 대한 반응을 전달함

  • 정보(자극)를 입력받아 특정 임계값을 넘어가 활성화되면 해당 되는 반응을 전달한다. 그리고 이와 같은 방식으로 뉴런끼리 정보를 전달하여 최종적으로 뇌와 여러기관의 정보전달을 돕게 된다.

    뉴런이 정보를 받아 임계값이 넘어서 정보를 전달하게 되는 경우를 "활성화 된다"라고 한다.

  • 인간의 뇌가 학습을 한다는것은, 정보전달과정을 통해 뉴런의 전달 방향이 끊기고 이어지는 과정을 통해 변화되는 과정을 뜻한다. 이 과정을 통해 학습하게 되며, 사람은 비슷한 방식으로 학습을 하게 된다.
항목인공뉴런뉴런
역할가중치(Weight), 편향(bias)를 이용하여 입력값을 변환한다. 그리고 이를 활성화 함수(activation function)에 대입해 최종적인 ouput을 출력하게 된다.자극을 전달받아 임계값을 넘어설 경우 활성상태가 되어 다음 뉴런에 다른 자극을 전달한다.
  • 인공신경망의 구성
  • 각 유닛이라고 불리는 뉴런이있고, 해당 뉴런을 모아둔 경우를 층(layer)라고 부른다.
  • 각 유닛은 Weight이라는 가중치를 갖는다.
  • 층의 종류는 입력층(input layer),은닉층(hidden layer),출력층(ouput layer)등이 존재
  • 입력층(input layer) 데이터 입력을 받는 층
  • 출력층(ouput layer) 최종적으로 예측을 하는 층
  • 입력층에서 출력층으로 넘어가면서 연산을 진행하고, 예측과정을 이후 backpropagation을 통해 학습하게 되는데, 학습과정에서 가중과 편향을 바구게 된다.

인공신경망에서 일어나는 일

  • 작은 부분의 패턴을 찾는 역할을 수행하게 된다.
  • 입력층에 갈수록 더 작은 패턴을, 출력층으로 갈수록 더 큰 패턴을 학습하게 된다. 따라서 단순한 패턴에서 복잡한 패턴을 인식하게 된다.

참고 : 코드잇 머신러닝 실전 강의

profile
사회적 가치를 실현하는 프로그래머

0개의 댓글