딥러닝기초_0323

allzeroyou·2022년 3월 23일
0

딥러닝기초

목록 보기
4/22

이번주 금요일은 녹화강의
다음주 수요일부터 대면강의 진행.

퍼셉트론

개념을 확실히 알고 있어야

가중치와 편향 구현하기

XOR 논리 구현

XOR 게이트

배타적 논리합
두 개의 입력이 다를 경우 1을 출력, 같을 경우 0을 출력(비교 연산)
XOR 게이트를 퍼셉트론으로 구현

OR게이트의 퍼셉트론

(b, w1, w2) = (-0.5, 1.0, 1.0)

퍼셉트론으로 XOR 논리 구현

하나의 퍼셉트론으로 OR게이트를 표현할 수 없음.
따라서 다층 퍼셉트론으로 구성.(인간의 뇌 또한 수억개의 뉴런으로 multi로 이뤄짐)
=> 기존 게이트를 조합해 XOR 구현
AND, NAND, OR 퍼셉트론을 조합해 구

활성화함수

입력신호의 총합을 출력 신호로 변환하는 함수(Activation Function)
가중치가 곱해진 입력 신호의 총합을 계산한다.
총합을 활성화 함수에 입력해 결과를 내는 2단계의 과정을 거친다.

퍼셉트론의 활성화함수는 임계 값을 경계로 출력이 바뀌는 계단 함수(Step function)이다.
시그모이드 함수(Sigmoid function)는 신경망에서 자주 사용되는 활성화함수이다.
신경망에서 활성화 함수는 시그모이드 함수를 이용해 신호를 변환하고 변환된 신호를 다음 뉴런으로 전달한다.
따라서 퍼셉트론과 신경망의 차이는 활성화 함수 차이다.

퍼셉트론의 활성화 함수: 계단함수
신경망에서의 활성화 함수: 시그모이드

시그모이드 함수와 계단 함수

시그모이드 함수

  • 입력된 데이터를 주로 0과 1 사이의 값으로 출력하는 비선형 함수
  • 미분 가능한 연속성을 가진 함수
  • 수치적 근사를 할 수 있다는 점에서 계단함수와 다름
    추후 딥러닝에서 활성화 함수로 유용하게 사용되는데, 이는 생물학적 신경망의 활성화(activation potential)개념에서 영향을 받음.
    활성화를 표현할 때,
    1) 낮은 입력에 대해서 신경망은 여러 뉴런이 임계점을 넘지 않기 때문에 매우 낮은 반응
    2) 중간 수준의 입력에서는 선형성을 가지고 활동
    3) 높은 수준의 입력에서는 ceiling effect라고 불리는 정체기를 가지고 있기 때문이다.

시그모이드 함수와 계단 함수의 공통점은
모두 비선형 함수라는 점이다.
신경망에서는 활성화 함수를 사용할 때 비선형 함수를 사용해야 한다. 왜냐면 선형의 경우 신경망의 층을 깊게 하는 의미가 없기 때문이다!
예를 들어 h(x) = cx를 활성화 함수로 사용하는 경우 3층 네트워클를 구성한다면 y(x) = h(h(h(x)))가 되며, y(x) = cccx가 되지만 실제로는 y(x) = ax와 같은 식이다.
즉 은닉층이 없는 네트워크로 표현된다!
따라서, 층을 쌓는 구성을 위해 반드시 비선형 함수를 사용해야 한다.

ReLU 함수

Rectified Linear Unit 함수
오래전부터 신경망에서는 시그모이드 함수를 써왔지만, 최근 신경망 분야에서는 ReLU 함수를 주로 이용한다.
ReLU 함수는 입력이 0이 넘으면 입력값을 그대로 출력하고, 0 이하라면 0을 출력한다.

ReLU 함수는 신경망에서 시그모이드 함수에 비해 몇가지 주요 이점이 있다!
계산이 빠르고 음수 입력에 반응해 계속 변하지 않는 점에서 생물학적 신경망의 활성화와 유사하다고 볼 수 있다.

다차원 배열의 계산

numpy의 다차원 배열을 사용한 계산법
=> 신경망을 효율적으로 구현할 수 있다.

브로드캐스팅이란?
배열과 스칼라 값을 계산하는 numpy 모듈
이때 스칼라 값은 배열과 계산하기 위해 배열처럼 확장이 된다.

참고문헌(활성화함수)

profile
모든 건 zero 부터, 차근차근 헛둘헛둘

0개의 댓글