미누에요

[Deep Learning] 딥러닝과 인공신경망(Neural Network), 퍼셉트론(Perceptron) 본문

AI

[Deep Learning] 딥러닝과 인공신경망(Neural Network), 퍼셉트론(Perceptron)

미누라니까요 2024. 12. 24. 10:13
728x90
반응형
SMALL

딥러닝(Deep Learning)

딥러닝이라고 하면 마냥 어렵게만 느껴지겠지만 머신러닝과 크게 다를 게 없다.

단지 "인공신경망"이라는 것을 기반으로 했다는 것이 큰 차이점이다.

출처 - LG CNS https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.lgcns.com%2Fblog%2Fcns-tech%2Fai-data%2F8864%2F&psig=AOvVaw2hloiD-5xQeiI38obwIx72&ust=1735085680368000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCJCFtoGQv4oDFQAAAAAdAAAAABAE

 

앞서 말했듯이, 딥러닝은 인공신경망에 기반한 학습 방식이다.

 

 

인공 신경망(Neural Network)

과학기술에는 사람이나 동식물을 보고 영감을 받아 만든 제품이 많다.

그 중 인공신경망은 사람의 뇌 안에있는 뉴런 구조를 보고 구상하게 되었다.

출처 -https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.hani.co.kr%2Farti%2Fscience%2Fscience_general%2F755976.html&psig=AOvVaw3K4ETSYIMN9WxKM_iWiF22&ust=1735085915023000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCNDG5e6Qv4oDFQAAAAAdAAAAABAJ

예전에 과학 교과서에서 이런 그림을 본 적이 있을 것이다.

이 뉴런은 두뇌에서 가장 작은 정보처리 단위로써 사용된다.

 

이를 보고, 뉴런과 같은 작은 단위를 만들고, 이것을 여러 개 층층히 쌓아 신경망을 사람처럼 구성하면 어떨까 ? 라는 의견에서 나오게 된 것이 딥러닝의 핵심인 인공 신경망이다.

 

출처 - https://www.google.com/url?sa=i&url=https%3A%2F%2Fwww.ibm.com%2Fkr-ko%2Ftopics%2Fneural-networks&psig=AOvVaw1z1q3G44_oDQNIDUv-8ZkI&ust=1735085828666000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCMCr0sWQv4oDFQAAAAAdAAAAABAJ

위 사진은 인공신경망을 설명할 때 자주 나오는 사진의 구조이다.

인공 신경망이 여러 개의 층(layer)으로 구성되어있고, 뉴런과 같은 역할을 하는 하나의 동그라미를 퍼셉트론(perceptron)이라 한다.

 

이러한 인공신경망의 특징은 아래와 같다.

  • 모델 스스로 데이터의 특성을 학습한다.
  • 지도학습, 비지도학습 모두 가능
  • ex) 얼굴인식, 번역, 알파고

 

 

퍼셉트론(Perceptron)

출처 - LG AIMERS elice 교육

퍼센트론은 위에서 언급했듯이 뉴런을 그대로 보고 만든 하나의 요소이다.

Input을 받아 특정 연산을 수행한 후 Output으로 전달하게 되고, 전달된 Output은 또다른 퍼셉트론이 받게 된다.

출처 - LG AIMERS elice 교육

퍼셉트론은 위 사진과 같은 구조를 지닌다.

  • 입력값(input) : x1, x2, ... , xn
  • 가중치값(weight) : w1, w2, ... , wn
  • 바이어스(bias) : B or w0
  • 활성화함수(activation Function)
  • 출력값(ouput) : y

 

여기서 바이어스(bias)는 마지막에 더해주는 값으로, 결과를 미세하게 조정하는 데 사용된다.

 

 

만약 입력값이 x1,x2이고 가중치가 각각 w1,w2이며 바이어스가 B라면 출력값 y는 아래와 같이 나타난다.

 

 

여기서 activation은 여러 가지 종류가 존재하며, 상황에 맞게 사용하면 된다.

 

딥러닝을 활용해서 분류 문제를 수행하는 경우에 우리는 출력값, 즉 결과값을 0 또는 1로 받아야한다.

 

이런 경우에 우리는 활성화함수(activation)으로 Step Function을 사용할 수 있다.

출처 - https://www.google.com/url?sa=i&url=https%3A%2F%2Fiq.opengenus.org%2Fbinary-step-function%2F&psig=AOvVaw1z_BHQ0dZubPMyAknR3KK2&ust=1735088094129000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCPjtof6Yv4oDFQAAAAAdAAAAABAE

Step Function은 우리가 아래 식을 이용해 계산한 결과가 0보다 작으면 0을 출력하고, 0보다 크거나 같은 경우에는 1을 출력한다.

즉, activation 함수를 거치면 결과값이 0 또는 1로 나누어진다는 뜻이다.

 

이진 분류 문제를 풀어야하는 경우에는 이러한 활성화함수가 잘 활용될 수 있다.

 

 

+) 활성화함수 종류

출처 - https://www.google.com/url?sa=i&url=https%3A%2F%2Fblog.naver.com%2Fhanduelly%2F221824080339&psig=AOvVaw0VSSUKFgH-CLOA6jCBbKsa&ust=1735089034648000&source=images&cd=vfe&opi=89978449&ved=0CBcQjhxqFwoTCNCQnr6cv4oDFQAAAAAdAAAAABAQ

 

 

풀어야하는 문제 상황에 맞게 활성화함수를 택하면 좋다.

728x90
반응형
LIST