dragonsky2357.log
로그인
dragonsky2357.log
로그인
인공신경망과 딥러닝
박용민
·
2022년 3월 21일
팔로우
0
쉬운 딥러닝
목록 보기
1/8
뇌세포를 모방한 기계, 퍼셉트론
뉴런의 구조
인간의 뇌와 척수는 뉴런(신경세포)으로 구성되어 있다.
뉴런은 입력부와 출력부로 구분할 수 있다.
입력부가 외부로부터 받은 자극이 역치 이상이면 전기적 신호를 만들어 출력부로 전달한다.
전기적 신호를 활동 전위라고 부르는데 이때 입력받은 자극이 지나치게 작다면 뉴런은 그 신호를 무시한다.
퍼셉트론의 구조
외부에서 들어오는 입력값에 가중치(weight)를 곱한 값을 모두 더하여 하나의 입력값으로 정돈한다.
가중치가 큰 입력값은 퍼셉트론에 크게 영향을 미치고, 가중치가 작은 입력값은 퍼셉트론에 작은 영향을 미친다.
활성화 함수
뉴런은 0 or 1 두 가지 값만 출력할 수 있는 기계이다.
퍼세트론의 출력값을 뉴런의 출력값과 유사하게 다듬어주려는 도구가 활성화 함수이다.
작은 숫자를 입력받으면 0에 가까운 숫자를 출력하고, 어느 정도 큰 숫자를 입력받으면 1에 가까운 숫자를 출력한다.
시그모이드 함수(Sigmoid function)
입력값을 0부터 1사이의 값으로 만들어 주는 함수
입력값이 작으면 작을수록 0에 가까운 값이 출력되고 클수록 1에 가까운 값이 출력된다.
출력값의 범위를 0과 1사잇값으로 한정할 수 있다는 점에서 널리 활용된다.
하이퍼볼릭 탄젠트 함수(tanh)
입력값을 -1부터 1사잇값으로 다듬어주는 함수
입력값이 작으면 작을수록 -1에 가까운 값이 출력되고 클수록 1에 가까운 값이 출력된다.
뉴런의 on-off 작동을 모사한다는 점에서 애용되지만, 최근 음수 값을 사용하지 않으려는 추세가 등장하면서 선호도가 낮아진 함수
렐루(ReLU, Rectified Linear Unit)
입력값이 0보다 작은 값은 0으로 만들고 0보다 큰 값은 그대로 출력하는 함수
단일 뉴런보다는 여러 개의 뉴런으로 구성된 신경 다발의 정보전달 형상에 가깝다.
딥러닝의 고질적인 문제를 해결하기 위한 방법으로 조명받으며, 딥러닝 모델을 만들때 어떤 활성화 함수를 적용하면 좋을지 모르겟으면 렐루를 사용하면 대부분의 경우 높은 성능을 보인다.
리키 렐루(Leaky ReLU)
리키 렐루는 렐루 함수와 달리 0보다 작은 값도 버리지 않는다.
원본 그대로 출력이 아닌 약간 더 작은 값을 출력한다.
몇몇 적용사례에서 렐루에 비해 월등한 성능을 보인다.
가중치는 어떻게 결정되는가?
뉴런에서 가중치는 자주 정보를 주고받는 부위일수록 더더욱 가중치가 커지고, 자주 사용하지 않는 영역일수록 자중치가 감소하는 경향이 있다.
일반적으로 딥러닝에서는 맨 처음에 가중치를 랜덤으로 결정한다. 이후 역전파(backpropagation)라는 알고리즘을 적용하여 퍼셉트론이 입력값을 목푯값과 잘 매칭시킬 수 있도록 조금씩 가중치를 수정해 나간다.
데이터를 분석해 가중치를 수정해 나가는 과정을 '학습'이라고 부른다.
인공신경망과 딥러닝
인공신경망
인공신명망(Artificial Neural Network)은 인공적인 신경을 그물(network)처럼 연결됨.
한 번에 한 층씩 쌓아 올리는 경우가 많아 한 층의 신경망은 하나의 행렬로 표현할 수 있어 계산이 더 쉽다.
퍼셉트론들이 모여 한 층의 신경망이 된다.
딥러닝
인공신경망을 여러 층으로 쌓아 올리는 것을 다층 퍼셉트론(multilayer perceptron)이라고 부르며 퍼셉트론을 사용한 머신러닝 알고리즘을 딥러닝이라고 부른다.
입력값들로 구성된 맨 왼쪽 노드들은 입력층(input layer), 가운데 있는 층은 은닉층(hidden layer), 출력값과 연결된 마지막 층을 출력층(output layer)라고 부른다.
은닉층에 속한 퍼셉트론의 출력값은 오차를 측정할 기준이 없기에 은닉층 퍼셉트론의 가중치를 수정할 방법이 없었지만 역전파(backpropagation)라는 기법을 이용해 2창 이상 쌓는 딥러닝 연구가 시작되었다.
박용민
팔로우
다음 포스트
분류(Classification)
0개의 댓글
댓글 작성