떡밥위키
최근 변경
최근 토론
특수 기능
파일 올리기
작성이 필요한 문서
고립된 문서
고립된 분류
분류가 되지 않은 문서
편집된 지 오래된 문서
내용이 짧은 문서
내용이 긴 문서
차단 내역
RandomPage
라이선스
IP 사용자
3.143.247.141
설정
다크 모드로 전환
로그인
인공신경망
(r17 RAW)
[[분류:수학]][[분류:떡밥위키 학문 프로젝트]] [include(틀:프로젝트 문서, 프로젝트=떡밥위키 학문 프로젝트)] [목차] [clearfix] == 개요 == 기계학습의 한 갈래로 생물의 신경 구조에서 영감을 받아 개발된 알고리즘으로, 입력에 대해 선형 계산을 수행하는 노드들을 겹겹이 쌓아 올린 구조를 일컫는다. 개발 자체는 오래전에 개발되었지만, 학계에서 주목을 받지 못하다가 컴퓨팅 성능이 올라오고 무식하게 학습을 많이 하는 '심층학습(deep learning)'이 도입되자 다시 주목을 받았고, 현재의 인공지능을 말하면 대부분 이 인공신경망 기법을 말할 정도가 되었다. == 구조 == [youtube(wrguEHxk_EI)] 인공신경망에 대한 기초적인 이론을 설명한 영상이다. 엥간한 대학교 교수보다 설명을 더 잘한다. 기본적인 인공신경망은 다음과 같은 구성요소로 이루어져 있다. * 퍼셉트론: 입력 데이터에 대해 선형적인 연산을 수행하는 모듈이라고 이해하는 것이 좋다. 예를들어 n차원 벡터로 이루어진 입력 데이터 [math(x = [x_1, x_2, ... , x_n])]가 입력될때, 퍼셉트론이 보유하고 있는 고유한 값[* 가중치 그리고 바이어스라고 부른다. 둘을 묶어 파라미터라고 부른다.]을 이용해서 다음과 같은 연산을 수행해서 값을 출력하는 기능을 수행한다. >[math(y = \displaystyle\sum_{k=1}^{n}{w_k x_k}+b)] 만일 출력의 형태 역시 다차원 벡터라면 가중치는 행렬이 되고 식은 다음과 같은 행렬 연산으로 확장된다. >[math(\mathbf{y} = \mathbf{W} \mathbf{x} + \mathbf{b})] * 활성화 함수: 인공신경망은 다양한 기능을 수행하기 위해 퍼셉트론들을 차곡차곡 쌓아올리고 학습을 하는데 단순하기 쌓아올리면 치명적인 문제가 발생한다. 선형 계산을 수행하는 퍼셉트론은 아무리 쌓아올려봤자 단층 퍼셉트론과 다를바 없는 결과를 만들어낸다. 간단히 설명하자면, 첫번째 레이어에서 [math(y = ax + b)]라는 계산을 수행하고 다음층에서 [math(y = cx + d)]라는 계산을 수행한다면 그 결과는 [math(y = acx + bc + d)]가 되므로 단층 퍼셉트론과 다를바 없어진다. 때문에 활성화 함수는 이러한 퍼셉트론간의 선형성을 분리하는 역할을 하게 된다. 아래의 친구들은 대표적인 활성화 함수들이다. * sigmoid[br][math(f(x) = \frac{1}{1 + e^{-x}})] * tanh[br][math(f(x) = \tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}})] * ReLU[br][math(f(x) = \max(0, x))] * Swish[br][math(f(x) = \frac{x}{1 + e^{-x}})] == 학습 == 이렇게 만들어진 인공신경망 시스템은 기계학습의 방법 아래에서 데이터에 의해 학습된다. 기계학습의 목적은 학습에 사용될 데이터들 사이의 숨겨진 인비저블 썸띵을 모델이 모사할 수 있도록 하는 것이다. 하나씩 차근차근 알아보자. * 데이터(data): 데이터는 일반적으로 입력(input)과 라벨(label)로 이루어져있다. 라벨은 입력에 매칭되는 일종의 정답지라고 생각하면 된다. 예컨데 동물 분류를 위해 모은 데이터에서 동물 사진이 입력에 해당된다면, 그 동물 사진의 정답, 개, 고양이, 말 등등 이런 사진에 대한 정답지가 바로 라벨이된다. * 모델(model): 모델은 우리가 위에서 설계한 인공신경망 시스템을 모델이라고 부른다. 현재에는 상기한 단순한 구조의 인공신경망 말고 다양한 기법들이 등장하여 보다 복잡한 인공신경망 구조를 갖고 있다. 모델이 가진 파라미터들은 학습 초기단계에서 무작위 값으로 초기화되고 기계학습에 의해 점점 더 정밀하게 조정된다. * 손실(loss): 손실은 모델에 데이터의 입력을 때려박았을때 나오는 출력값과 정답지인 라벨 사이의 차이를 수치로 나타낸 것이다. 즉, 모델이 생성한 결과[* 예측이라고도 한다.]와 정답지인 라벨 사이의 오차(error)라고 볼 수 있다. 계산 방법에는 여러가지가 있으며 목적에 따라 차이를 나타내는 방법이 아닌 다른 방법을 이용하기도 한다. 기계학습은 이러한 손실을 최소화 하는 방향으로 이루어진다. * Mean Square Error(MSE) * Cross Entropy (CE) * Kullback-Leibler Divergence(KL-Divergence) * 경사하강법(Gradient Descent): 경사하강법은 손실을 최소화하기 위해 사용되는 최적화 알고리즘이다. 모델의 예측이 라벨과 가까워지도록 파라미터를 반복적으로 조정한다. 이때 우리가 조정할 수 있는 변수는 파라미터이기 때문에 파라미터에 대한 손실함수의 기울기(Gradient)를 계산해서 이용하게 된다. * 역전파(Back Propagation): 경사하강법을 심층 모델에 적용하기 쉽게 하도록 고안된 알고리즘으로 연쇄법칙을 이용해서 계산량을 효과적으로 절감하는 방법이다. 이 아이디어는 심층학습의 핵심적인 아이디어로 꼽힌다. 심층학습, Deep Learning이란 이런식의 과정을 무식하게 많이 반복함으로써 정답에 가까운 모델을 모사해내는 것이다. 원하는 결과를 위해서라면 고성능 GPU 수천대를 꽂고 100일 밤낮으로 학습을 하고 파라미터를 조정하고를 반복하는 이시대의 진정한 사이버 노가다에 가까운 방법이다. 물론 노가다를 하는 주체는 우리가 아니라 GPU이다. 이렇게 설계된 심층학습 모델은 꽤나 좋은 기능을 수행하지만 왜 그렇게 잘 되는지 명확한 설명은 불가능하다. 일명 Black Box. 이해는 못했지만 잘되니까 실생활에 사용하게 되었고 이를 명확히 해석하려는 연구 분야도 존재한다. == 관련 문서 == * [[인공지능]] * [[ChatGPT]]
사용자
3.143.247.141
IP 사용자
로그인
회원가입
최근 변경
[불러오는 중...]