‘밑바닥부터 시작하는 딥러닝’ 세미나 3

퍼셉트론의 구조와 동작 원리를 알고나면 신경망의 가능성에 대한 의심도 어느정도 해소됩니다. ‘대체 이것이 가능한 이유가 뭐야’에 대해 ‘뭐 이런 이유에서 가능한거 아니겠어’라고 수긍할 수 있습니다.

신경망은 퍼셉트론의 발전된 형태입니다. 따라서 신경망에 대한 이해는 신경망이 퍼셉트론과 어떤 공통점과 차이점이 있는지를 알아보는 것으로 시작할 수 있습니다.

3.1과 3.2를 읽고 신경망과 퍼셉트론의 공통점과 차이점을 알아봅니다.

신경망과 퍼셉트론의 공통점과 차이점

p64. 뉴런이 연결되는 방식은 퍼셉트론과 달라보이지 않는다.

p66. 입력 신호의 총합을 출력 신호로 변환하는 함수를 일반적으로 활성화함수(activation function)라 한다. ‘활성화’라는 이름이 말해주듯 활성화 함수는 입력 신호의 총합이 활성화를 일으키는지를 정하는 역할을 한다.

p68. 퍼셉트론에서는 활성화 함수로 계단 함수를 이용한다. 활성화 함수를 계단 함수에서 다른 함수로 변경하는 것이 신경망 세계로 나아가는 열쇠이다. 신경망에서는 활성화 함수로 시그모이드 함수를 이용한다.

p74. 계단 함수가 0과 1중 하나의 값만 돌려주는 반면 시그모이드 함수는 실수를 돌려준다는 퍼셉트론에서는 뉴런 사이에 0 혹은 1이 흘렀다면, 신경망에서는 연속적인 실수가 흐른다.

p75. 계단함수와 시그모이드 함수는 모두 비선형 함수이다.

선형함수를 이용해서는 여러 층으로 구성하는 이점을 살릴 수 없다. 그래서 층을 쌓는 혜택을 얻고 싶다면 활성화 함수로는 반드시 비선형 함수를 사용해야 한다.

p76. 최근에는 활성화 함수로 ReLU(Rectified Linear Unit, 렐루) 함수를 주로 사용한다.

 

활성화 함수라는 용어를 사용하면서 좀 혼란스럽습니다. 퍼셉트론의 임계치를 사용할 때는 활성화(1인 경우 활성화)라는 의미가 그대로 드러나고 있지만 신경망에서 시그모이드 함수나 렐루 함수를 사용할 때는 그렇지 않습니다. 활성화라는 의미보다 변환의 의미가 더 강하다고 생각이 듭니다.

퍼셉트론을 이해하고 신경망을 보았을 때 신경망이 복잡한 논리를 처리할 수 있다는 것은 수긍이 되었습니다. 활성화 함수를 통해 비선형도 처리할 수 있다는 것도 수긍이 되었습니다. 그래도 프로그래머인 저는 여전히 답답했습니다. ‘복잡한 제어 구조를 어떻게 신경망이 처리하지?’라는 의문은 여전히 불분명했습니다.

어느날 문득 신경망이 해결하려는 것과 제가 프로그래밍을 통해 해결하려고 했던 문제가 다른 유형임을 깨달았습니다. 신경망이 처리하려는 것은 입력과 출력의 상관관계입니다. 선형과 비선형을 모두 사용해서 입력과 출력 사이의 상관관계를 알아내는 것이 신경망이 하고자 하는 것입니다. 상관관계만 알아내면 되기 때문에 우리가 이전에 해 왔던 프래그래밍 요소들이 다 필요한 것은 아닙니다. 신경망으로 우리가 이전에 해 왔던 프로그래밍을 하려면 좀 더 많은 장치들이 필요할 것입니다.

 

3.3을 읽고 넘파이 다차원 배열을 사용한 계산법을 숙달합니다.

3.4를 읽고 3층 신경망을 구현합니다.

p83. 이번 절의 핵심은 신경망에의 계산을 행렬 계산으로 정리할 수 있다는 것이다. 신경망 각 층의 계산은 행렬의 내적으로 처리할 수 있다.

 

3.5를 읽고 출력층을 설계합니다.

3.5 출력층 설계하기

p90. 신경망은 분류와 회귀 모두에 이용할 수 있다. 일반적으로 회귀에는 항등 함수를, 분류에는 소프트맥스 함수를 사용한다.

p91. 항등 함수는 입력을 그대로 출력한다.

소프트맥스의 출력은 모든 입력 신호로부터 화살표를 받는다. 출력층의 각 뉴런이 모든 입력 신호에서 영향을 받기 때문이다.

p94-95. 소프트맥스 함수의 출력은 0에서 1.0 사이의 실수이고, 출력의 총합은 1이다. 이 성질 덕분에 소프트맥스 함수의 출력을 확률로 해석할 수 있다. 추론 단계에서는 출력층의 소프트맥스 함수를 생략하는 것이 일반적이다.

 

3.6을 읽고 손글씨 숫자 인식을 구현합니다.

원-핫 인코딩 이것도 별 것 아닌 것 같은데 대단한 발상입니다.

3.6 손글씨 숫자 인식

p98. 원-핫 인코딩이란 정답을 뜻하는 원소만 1이고 나머지는 모두 0인 배열이다.

P101-102. 데이터를 특정 범위로 변환하는 처리를 정규화라 하고, 신경망의 입력 데이터에 특정 변환을 가하는 것을 전처리라고 한다.

p103. 하나로 묶은 입력 데이터를 배치라 한다. 배치 처리는 컴퓨터로 계산할 대 큰 이점을 준다.

 

다음에는 신경망의 학습에 대해서 다룹니다.

p63. 퍼셉트론 관련해서는 좋은 소식과 나쁜 소식이 있다. 좋은 소식은 퍼셉트론으로 복잡한 함수도 표현할 수 있다는 것이다. 나쁜 소식은 가중치를 설정하는 작업은 여전히 사람이 수동으로 한다는 것이다. 신경망은 이 나쁜 소식을 해결해준다. 가중치 매개변수의 적절한 값을 데이터로부터 자동 학습하는 능력이 신경망의 중요한 성질이다.

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*