Skip to content
Home » Deep Learning이란 | [Tmook] 딥러닝이란 1편 Deep-Learning 답을 믿으세요

Deep Learning이란 | [Tmook] 딥러닝이란 1편 Deep-Learning 답을 믿으세요

당신은 주제를 찾고 있습니까 “deep learning이란 – [TMook] 딥러닝이란 1편 Deep-Learning“? 다음 카테고리의 웹사이트 https://hu.taphoamini.com 에서 귀하의 모든 질문에 답변해 드립니다: https://hu.taphoamini.com/photos/. 바로 아래에서 답을 찾을 수 있습니다. 작성자 TMook 이(가) 작성한 기사에는 조회수 69,446회 및 좋아요 726개 개의 좋아요가 있습니다.

deep learning이란 주제에 대한 동영상 보기

여기에서 이 주제에 대한 비디오를 시청하십시오. 주의 깊게 살펴보고 읽고 있는 내용에 대한 피드백을 제공하세요!

d여기에서 [TMook] 딥러닝이란 1편 Deep-Learning – deep learning이란 주제에 대한 세부정보를 참조하세요

머신러닝 기술 중에서도 알파고로 인해 많은 관심이 집중되기 시작하고, 계속해서 발전해나가는 중인 ‘딥러닝’의 기초적인 개념을 최대한 단순화해서 알아보는 시간입니다.
Icons in this content
Designed by Freepik and distributed by Flaticon (http://www.flaticon.com/)

deep learning이란 주제에 대한 자세한 내용은 여기를 참조하세요.

딥 러닝이란 무엇인가요? | Vision Campus

딥 러닝은 머신 러닝의 한 방법으로, 학습 과정 동안 인공 신경망으로서 예시 데이터에서 얻은 일반적인 규칙을 독립적으로 구축(훈련)합니다. 특히 머신 비전 분야에서 …

+ 여기를 클릭

Source: www.baslerweb.com

Date Published: 3/23/2021

View: 870

1. 딥러닝이란 무엇인가?

지난 몇 년간 인공 지능Artificial Intelligence, AI은 미디어에서 경쟁적으로 보도하는 주제였습니다. 머신 러닝machine learning, 딥러닝deep learning, AI에 대한 기사 …

+ 여기에 자세히 보기

Source: tensorflow.blog

Date Published: 12/21/2021

View: 8759

딥러닝(Deep Learning)이란? – 코딩의 시작, TCP School

딥러닝(Deep Learning)이란 여러 층을 가진 인공신경망(Artificial Neural Network, ANN)을 사용하여 머신러닝 학습을 수행하는 것으로 심층학습이라고도 부릅니다.

+ 여기를 클릭

Source: www.tcpschool.com

Date Published: 12/11/2022

View: 7155

인공지능, 머신러닝, 딥러닝의 차이: 3.딥러닝(Deep Learning)이란

즉 딥러닝이란, 대규모 데이터에서 자동으로 특징을 추출해 중요한 패턴 및 규칙을 학습하고, 이를 토대로 의사 결정이나 예측 등을 수행하는 기술이다.

+ 여기에 자세히 보기

Source: medium.com

Date Published: 2/7/2022

View: 910

딥 러닝 – 위키백과, 우리 모두의 백과사전

심층 학습(深層學習) 또는 딥 러닝(영어: deep structured learning, deep learning 또는 hierarchical learning)은 여러 비선형 변환기법의 조합을 통해 높은 수준의 …

+ 여기에 더 보기

Source: ko.wikipedia.org

Date Published: 11/15/2021

View: 5072

딥 러닝이란 무엇입니까? | 팁코 소프트웨어

딥 러닝 ( DL )은 인간의 뇌에서 신경 세포를 사용하는 방식과 유사한 알고리즘을 사용하는 머신 러닝(ML) 의 하위 분야입니다. 딥 러닝은 인간의 뇌가 작동하는 방식 …

+ 여기를 클릭

Source: www.tibco.com

Date Published: 11/22/2022

View: 3256

딥러닝이란 무엇인가? (1) – 블로그 | 코그넥스 – Cognex

요즘에 딥러닝(Deep Learning)이란 단어가 여기저기에서 많이 들려옵니다. 머신러닝(machine learning)과 왠지 느낌은 비슷한데, ‘딥’하다는 수식어가 붙어서 뭔가 좀 …

+ 여기에 보기

Source: www.cognex.com

Date Published: 8/22/2022

View: 5929

딥 러닝이란 무엇일까? – velog

딥 러닝 Deep Learning 은 인간의 신경망의 원리를 모방한 심층신경망 이론을 기반해 고안된 머신러닝 방법의 일종입니다. 딥 러닝이 기존의 통계학이나 …

+ 여기에 보기

Source: velog.io

Date Published: 10/18/2022

View: 7108

딥러닝이란? | 작동 방식 및 기술 응용 분야 – 매스웍스

딥러닝은 사람에게는 자연스러운 일, 즉 예시를 통해 학습하는 것을 컴퓨터가 수행할 수 있도록 가르치는 머신 러닝 기법입니다. 딥러닝은 무인 자동차에서 활용되는 …

+ 여기에 보기

Source: kr.mathworks.com

Date Published: 12/6/2021

View: 9827

딥 러닝이란 무엇인가? | Oracle 대한민국

딥 러닝은 인간의 두뇌 작동 방식을 기반으로 느슨하게 모델링한 알고리즘인 신경망 계층으로 지원됩니다. 대량의 데이터를 통한 학습은 신경망에서 신경을 구성하는 것 …

+ 여기에 자세히 보기

Source: www.oracle.com

Date Published: 12/11/2021

View: 4272

주제와 관련된 이미지 deep learning이란

주제와 관련된 더 많은 사진을 참조하십시오 [TMook] 딥러닝이란 1편 Deep-Learning. 댓글에서 더 많은 관련 이미지를 보거나 필요한 경우 더 많은 관련 기사를 볼 수 있습니다.

[TMook] 딥러닝이란 1편 Deep-Learning
[TMook] 딥러닝이란 1편 Deep-Learning

주제에 대한 기사 평가 deep learning이란

  • Author: TMook
  • Views: 조회수 69,446회
  • Likes: 좋아요 726개
  • Date Published: 2017. 11. 27.
  • Video Url link: https://www.youtube.com/watch?v=QzrIBsod1_A

딥 러닝이란 무엇인가요?

Check out our new upgraded Lens Selector which gives you the ability to find the perfect lens by sensor and also provides you with the best technical- and best price/performance fit for your needs.

텐서 플로우 블로그 (Tensor ≈ Blog)

베타테스터 실습 후기 | 목차 | 1.2 딥러닝 이전: 머신 러닝의 간략한 역사

지난 몇 년간 인공 지능Artificial Intelligence, AI은 미디어에서 경쟁적으로 보도하는 주제였습니다. 머신 러닝machine learning, 딥러닝deep learning, AI에 대한 기사가 쏟아져 나왔으며, 기술적으로 이해가 부족한 글도 있었습니다. 우리는 지능적인 챗봇chatbot, 자율 주행 자동차, 가상 비서가 있는 미래를 기대합니다. 직업이 줄고 대부분의 경제 활동을 로봇이나 AI 에이전트가 수행할 미래는 이따금 어둡게 그려질 때도 있고, 어떨 때는 유토피아처럼 그려지기도 합니다. 현재 그리고 미래의 머신 러닝 기술자들은 잡음 속에서 제대로 된 신호를 잡아내듯이 과장된 뉴스 기사 속에서 세상을 바꿀 기술 발전을 알아차릴 수 있어야 합니다. 우리의 미래가 달려 있으며, 이 미래는 여러분이 왕성하게 활동할 미래입니다. 이 책을 읽고 나면 여러분은 AI 에이전트를 개발할 수 있는 사람들 중 하나일 것입니다. “딥러닝이 지금까지 거둔 성과는 무엇인가요? 얼마나 중요한가요? 어디를 향해 가고 있나요? 과장된 선전을 믿어도 될까요?”에 대한 답을 찾아보겠습니다.

이 장에서 인공 지능과 머신 러닝, 딥러닝에 대한 필수적인 개념을 소개합니다.

1.1 인공 지능과 머신 러닝, 딥러닝

먼저 AI를 언급할 때 사용하는 용어에 대해 명확히 정의할 필요가 있습니다. 인공 지능, 머신 러닝, 딥러닝은 무엇일까요?(그림 1-1 참고) 이들이 어떻게 서로 연관되어 있나요?

1.1.1 인공지능

인공 지능은 1950년대에 초기 컴퓨터 과학 분야의 일부 선각자들이 “컴퓨터가 ‘생각’할 수 있는가?”라는 질문을 하면서 시작되었습니다. 이 질문의 답은 오늘날에도 여전히 찾고 있습니다. 이 분야에 대한 간결한 정의는 다음과 같습니다. 보통의 사람이 수행하는 지능적인 작업을 자동화하기 위한 연구 활동입니다. 이처럼 AI는 머신 러닝과 딥러닝을 포괄하는 종합적인 분야입니다. 또 학습 과정이 전혀 없는 다른 방법도 많이 포함하고 있습니다. 예를 들어 초기 체스 프로그램은 프로그래머가 만든 하드코딩된 규칙만 가지고 있었고 머신 러닝으로 인정받지 못했습니다. 아주 오랜 기간 동안 많은 전문가는 프로그래머들이 명시적인 규칙을 충분하게 많이 만들어 지식을 다루면 인간 수준의 인공 지능을 만들 수 있다고 믿었습니다. 이런 접근 방법을 심볼릭 AIsymbolic AI라고 하며 1950년대부터 1980년대까지 AI 분야의 지배적인 패러다임이었습니다. 1980년대 전문가 시스템expert system의 호황으로 그 인기가 절정에 다다랐습니다.

심볼릭 AI가 체스 게임처럼 잘 정의된 논리적인 문제를 푸는 데 적합하다는 것이 증명되었지만, 이미지 분류, 음성 인식, 언어 번역 같은 더 복잡하고 불분명한 문제를 해결하기 위한 명확한 규칙을 찾는 것은 아주 어려운 일입니다. 이런 심볼릭 AI를 대체하기 위한 새로운 방법이 등장했는데, 바로 머신 러닝입니다.

1.1.2 머신 러닝

영국 빅토리아 시대의 에이다 러브레이스Ada Lovelace, 1는 최초의 기계적 범용 컴퓨터인 해석 기관Analytical Engine을 발명한 찰스 배비지Charles Babbage의 친구이자 동료였습니다. 선견지명이 있어 시대를 많이 앞섰지만 1830년대와 1840년대부터 해석 기관이 범용 컴퓨터로 설계된 것은 아닙니다. 범용 컴퓨터란 개념이 아직 정의되지 않은 때였습니다. 단지 해석학mathematical analysis 분야의 계산을 자동화하기 위해 기계적인 연산을 사용하는 방법이었을 뿐입니다. 그래서 이름이 해석 기관입니다. 1843년 에이다 러브레이스는 이 발명에 대해 다음과 같이 언급했습니다. “해석 기관이 무언가를 새롭게 고안해 내는 것은 아닙니다. 우리가 어떤 것을 작동시키기 위해 어떻게 명령할지 알고 있다면 이 장치는 무엇이든 할 수 있습니다. …… 이런 능력은 우리가 이미 알고 있는 것을 유용하게 사용할 수 있도록 도와줄 것입니다.

AI 선구자인 앨런 튜링Alan Turing은 1950년에 튜링 테스트Turing test와 AI의 주요 개념을 소개한 그의 기념비적인 논문 “Computing Machinery and Intelligence”2에서 ‘러브레이스의 반론’Lady Lovelace’s objection, 3으로 이 논평을 인용했습니다. 튜링은 에이다 러브레이스의 말을 인용했지만 범용 컴퓨터가 학습과 창의력을 가질 수 있는지 숙고한 후 가능한 일이라고 결론을 냈습니다.

머신 러닝은 이런 질문에서부터 시작됩니다. “우리가 어떤 것을 작동시키기 위해 ‘어떻게 명령할지 알고 있는 것’ 이상을 컴퓨터가 처리하는 것이 가능한가? 그리고 특정 작업을 수행하는 법을 스스로 학습할 수 있는가? 컴퓨터가 우리를 놀라게 할 수 있을까? 프로그래머가 직접 만든 데이터 처리 규칙 대신 컴퓨터가 데이터를 보고 자동으로 이런 규칙을 학습할 수 있을까?”

이 질문은 새로운 프로그래밍 패러다임의 장을 열었습니다. 전통적인 프로그래밍인 심볼릭 AI의 패러다임에서는 규칙(프로그램)과 이 규칙에 따라 처리될 데이터를 입력하면 해답이 출력됩니다(그림 1-2 참고). 머신 러닝에서는 데이터와 이 데이터로부터 기대되는 해답을 입력하면 규칙이 출력됩니다. 이 규칙을 새로운 데이터에 적용하여 창의적인 답을 만들 수 있습니다.

머신 러닝 시스템은 명시적으로 프로그램되는 것이 아니라 훈련training됩니다. 작업과 관련 있는 많은 샘플을 제공하면 이 데이터에서 통계적 구조를 찾아 그 작업을 자동화하기 위한 규칙을 만들어 냅니다. 예를 들어 여행 사진을 태깅하는 일을 자동화하고 싶다면, 사람이 이미 태그해 놓은 다수의 사진 샘플을 시스템에 제공해서 특정 사진에 태그를 연관시키기 위한 통계적 규칙을 학습할 수 있을 것입니다.

머신 러닝은 1990년대 들어와서야 각광을 받기 시작했지만, 고성능 하드웨어와 대량의 데이터셋이 가능해지면서 금방 AI에서 가장 인기 있고 성공적인 분야가 되었습니다. 머신 러닝은 수리 통계와 밀접하게 관련되어 있지만 통계와 다른 점이 몇 가지 있습니다. 먼저 머신 러닝은 통계와 달리 보통 대량의 복잡한 데이터셋(예를 들어 몇 만 개의 픽셀로 구성된 이미지가 수백만 개가 있는 데이터셋)을 다루기 때문에 베이지안 분석Bayesian analysis 같은 전통적인 통계 분석 방법은 현실적으로 적용하기 힘듭니다. 이런 이유 때문에 머신 러닝, 특히 딥러닝은 수학적 이론이 비교적 부족하고(어쩌면 아주 부족하고) 엔지니어링 지향적입니다. 이런 실천적인 접근 방식 때문에 이론보다는 경험을 바탕으로 아이디어가 증명되는 경우가 많습니다.4

1.1.3 데이터에서 표현을 학습하기

딥러닝을 정의하고 다른 머신 러닝 방식과의 차이점을 이해하기 위해 먼저 머신 러닝 알고리즘이 하는 일이 무엇인지 알아야 합니다. 머신 러닝은 샘플과 기댓값이 주어졌을 때 데이터 처리 작업을 위한 실행 규칙을 찾는 것입니다. 머신 러닝을 하기 위해서는 세 가지가 필요합니다.

입력 데이터 포인트 : 예를 들어 주어진 문제가 음성 인식이라면, 이 데이터 포인트는 사람의 대화가 녹음된 사운드 파일입니다. 만약 이미지 태깅에 관한 작업이라면 데이터 포인트는 사진이 됩니다.

: 예를 들어 주어진 문제가 음성 인식이라면, 이 데이터 포인트는 사람의 대화가 녹음된 사운드 파일입니다. 만약 이미지 태깅에 관한 작업이라면 데이터 포인트는 사진이 됩니다. 기대 출력 : 음성 인식 작업에서는 사람이 사운드 파일을 듣고 옮긴 글입니다. 이미지 작업에서 기대하는 출력은 ‘강아지’, ‘고양이’ 등과 같은 태그입니다.

: 음성 인식 작업에서는 사람이 사운드 파일을 듣고 옮긴 글입니다. 이미지 작업에서 기대하는 출력은 ‘강아지’, ‘고양이’ 등과 같은 태그입니다. 알고리즘의 성능을 측정하는 방법: 알고리즘의 현재 출력과 기대 출력 간의 차이를 결정하기 위해 필요합니다. 측정값은 알고리즘의 작동 방식을 교정하기 위한 신호로 다시 피드백됩니다. 이런 수정 단계를 학습learning이라고 말합니다.

머신 러닝 모델은 입력 데이터를 의미 있는 출력으로 변환합니다. 이것이 알고 있는 입력과 출력의 샘플로부터 학습하는 과정입니다. 그렇기 때문에 머신 러닝과 딥러닝의 핵심 문제는 의미 있는 데이터로의 변환입니다. 다시 말하면 입력 데이터를 기반으로 기대 출력에 가깝게 만드는 유용한 표현representation을 학습하는 것입니다. 여기에서 표현이란 무엇일까요? 핵심은 데이터를 인코딩encoding하거나 묘사하기 위해 데이터를 바라보는 다른 방법입니다. 예를 들어 컬러 이미지는 RGB 포맷(빨간색-녹색-파란색 )이나 HSV 포맷(색상-채도-명도)으로 인코딩될 수 있습니다. 이들은 같은 데이터의 두 가지 다른 표현입니다. 어떤 표현으로는 해결하기 힘든 문제가 다른 표현으로는 쉽게 해결될 수 있습니다. 예를 들어 ‘이미지에 있는 모든 빨간색 픽셀을 선택’하는 문제는 RGB 포맷에서는 쉽습니다. 반면에 ‘이미지의 채도를 낮추는’ 것은 HSV 포맷이 더 쉽습니다. 머신 러닝 모델은 입력 데이터에서 적절한 표현을 찾는 것입니다. 이런 데이터 변환은 분류 작업 같은 문제를 더 쉽게 해결할 수 있도록 만들어 줍니다.

구체적으로 살펴보죠. x축, y축이 있고 이 (x, y) 좌표 시스템으로 표현된 데이터 포인트가 그림 1-3에 나타나 있습니다.

그림에서 볼 수 있듯이 흰색 포인트와 빨간색 포인트가 있습니다. 포인트의 좌표 (x, y)를 입력으로 받고 그 포인트가 빨간색인지 흰색인지를 출력하는 알고리즘을 개발하려고 합니다. 이 경우에는 다음과 같이 요약할 수 있습니다.

입력은 포인트의 좌표입니다.

기대 출력은 포인트의 색깔입니다.

알고리즘의 성능을 측정하는 방법은 정확히 분류한 포인트의 비율을 사용하여 알고리즘의 성능을 측정합니다.

여기서 우리가 원하는 것은 흰색 포인트와 빨간색 포인트를 완벽하게 구분하는 새로운 데이터 표현입니다. 사용할 수 있는 변환 방법 중 하나는 그림 1-4와 같은 좌표 변환입니다.

포인트에 대한 새로운 좌표는 새로운 데이터 표현이라고 말할 수 있습니다. 그리고 좋은 표현을 찾았습니다. 이 표현을 사용하면 색깔 분류 문제를 “x > 0인 것은 빨간색 포인트다.” 또는 “x < 0인 것은 흰색 포인트다.”라는 간단한 규칙으로 나타낼 수 있습니다. 기본적으로 이 분류 문제를 해결한 것은 새로운 표현입니다. 이 경우에는 우리가 직접 좌표 변환을 정했습니다. 만약 시스템적으로 가능한 여러 좌표 변환을 찾아서 포인트 중 몇 퍼센트가 정확히 분류되었는지를 피드백으로 사용한다면, 바로 머신 러닝을 하고 있는 것입니다. 이처럼 머신 러닝에서의 학습Learning이란 더 나은 표현을 찾는 자동화된 과정입니다. 모든 머신 러닝 알고리즘은 주어진 작업을 위해 데이터를 더 유용한 표현으로 바꾸는 이런 변환을 자동으로 찾습니다. 이 연산은 앞서 본 좌표 변환일 수도 있고 또는 선형 투영linear projection(정보를 잃을 수 있음), 이동translation, 비선형 연산(예를 들어 x > 0인 모든 포인트를 선택하는 것) 등이 될 수도 있습니다. 머신 러닝 알고리즘은 일반적으로 이런 변환을 찾기 위한 창의력은 없습니다. 가설 공간hypothesis space이라 부르는 미리 정의된 연산의 모음들을 자세히 조사하는 것뿐입니다.

기술적으로 말하면 머신 러닝은 가능성 있는 공간을 사전에 정의하고 피드백 신호의 도움을 받아 입력 데이터에 대한 유용한 변환을 찾는 것입니다. 이 간단한 아이디어가 음성 인식에서부터 자율 주행 자동차까지 아주 다양한 분야에서 지능에 관한 문제를 해결합니다.

이제 학습이 의미하는 바를 이해했을 것입니다. 다음으로 무엇이 딥러닝을 특별하게 만드는지 살펴보겠습니다.

1.1.4 딥러닝에서 ‘딥’이란 무엇일까?

딥러닝은 머신 러닝의 특정한 한 분야로서 연속된 층layer에서 점진적으로 의미 있는 표현을 배우는 데 강점이 있으며, 데이터로부터 표현을 학습하는 새로운 방식입니다. 딥러닝의 딥deep이란 단어가 어떤 깊은 통찰을 얻을 수 있다는 것을 의미하지는 않습니다. 그냥 연속된 층으로 표현을 학습한다는 개념을 나타냅니다. 데이터로부터 모델을 만드는 데 얼마나 많은 층을 사용했는지가 그 모델의 깊이가 됩니다. 이 분야에 대한 적절한 다른 이름은 층 기반 표현 학습layered representations learning 또는 계층적 표현 학습hierarchical representations learning이 될 수 있습니다. 최근의 딥러닝 모델은 표현 학습을 위해 수십 개, 수백 개의 연속된 층을 가지고 있습니다. 이 층들을 모두 훈련 데이터에 노출해서 자동으로 학습시킵니다. 한편 다른 머신 러닝 접근 방법은 1~2개의 데이터 표현 층을 학습하는 경향이 있습니다. 그래서 이런 방식을 얕은 학습shallow learning이라 부르기도 합니다.

딥러닝에서는 기본 층을 겹겹이 쌓아 올려 구성한 신경망neural network이라는 모델을 (거의 항상) 사용하여 표현 층을 학습합니다. 신경망이란 단어는 신경 생물학의 용어입니다.5 딥러닝의 일부 핵심 개념이 뇌 구조를 이해하는 것에서부터 영감을 얻어 개발된 부분이 있지만, 딥러닝 모델이 뇌를 모델링한 것은 아닙니다. 최근의 딥러닝 모델이 사용하는 학습 메커니즘과 유사한 것을 뇌가 가지고 있다는 근거는 없습니다. 대중 과학 저널에서 딥러닝이 뇌처럼 작동한다거나 뇌를 모방하여 만들었다고 주장하는 글을 이따금 볼 수 있지만, 이는 사실이 아닙니다. 딥러닝이 신경 생물학과 어떤 관련이 있는 것처럼 생각하는 것이 오히려 이 분야를 처음 접하는 사람들을 혼란스럽게 해서 역효과를 냅니다. 인간의 정신 세계와 같은 신비하고 미스터리한 무언가를 떠올릴 필요가 없습니다. 이전에 읽었던 딥러닝과 생물학 사이를 연관 짓는 어떤 가설도 잊는 것이 좋습니다. 우리가 다루는 딥러닝은 그냥 데이터로부터 표현을 학습하는 수학 모델일 뿐입니다.

딥러닝 알고리즘으로 학습된 표현은 어떻게 나타날까요? 몇 개의 층으로 이루어진 네트워크(그림 1-5 참고)가 이미지 안의 숫자를 인식하기 위해 이미지를 어떻게 변환하는지 살펴보겠습니다.

그림 1-6에서 볼 수 있듯이 최종 출력에 대해 점점 더 많은 정보를 가지지만 원본 이미지와는 점점 더 다른 표현으로 숫자 이미지가 변환됩니다. 심층 신경망을 정보가 연속된 필터filter를 통과하면서 순도 높게(즉 어떤 작업에 대해서 유용하게) 정제되는 다단계 정보 추출 작업으로 생각할 수 있습니다.

바로 이것이 딥러닝입니다. 기술적으로는 데이터 표현을 학습하기 위한 다단계 처리 방식을 말합니다. 간단한 아이디어이지만, 매우 단순한 이 구조를 충분한 규모로 확장하면 마치 마술 같은 일을 할 수 있습니다.

1.1.5 그림 3개로 딥러닝의 작동 원리 이해하기

이제 머신 러닝이 많은 입력과 타깃target의 샘플을 관찰하면서 입력(예: 이미지)을 타깃(예: ‘고양이’ 레이블)에 매핑mapping하는 것임을 알았습니다. 심층 신경망은 이런 입력-타깃 매핑을 간단한 데이터 변환기(층)를 많이 연결하여 수행한다는 것도 배웠습니다. 이런 데이터 변환은 샘플에 노출됨으로써 학습이 이루어집니다. 이제 어떻게 이런 학습이 일어나는지 자세히 살펴봅시다.

층에서 입력 데이터가 처리되는 상세 내용은 일련의 숫자로 이루어진 층의 가중치weight에 저장되어 있습니다. 기술적으로 말하면 어떤 층에서 일어나는 변환은 그 층의 가중치를 파라미터parameter로 가지는 함수로 표현됩니다(그림 1-7 참고). (이따금 가중치를 그 층의 파라미터라고도 부릅니다.6) 이런 맥락으로 보면 학습은 주어진 입력을 정확한 타깃에 매핑하기 위해 신경망의 모든 층에 있는 가중치 값을 찾는 것을 의미합니다. 하지만 어떤 심층 신경망은 수천만 개의 파라미터를 가지기도 합니다. 이런 경우에 모든 파라미터의 정확한 값을 찾는 것은 어려운 일로 보입니다. 파라미터 하나의 값을 바꾸면 다른 모든 파라미터에 영향을 끼치기 때문입니다!

어떤 것을 조정하려면 먼저 관찰해야 합니다. 신경망의 출력을 제어하려면 출력이 기대하는 것보다 얼마나 벗어났는지를 측정해야 합니다. 이는 신경망의 손실 함수loss function 또는 목적 함수objective function가 담당하는 일입니다.7 신경망이 한 샘플에 대해 얼마나 잘 예측했는지 측정하기 위해 손실 함수가 신경망의 예측과 진짜 타깃(신경망의 출력으로 기대하는 값)의 차이를 점수로 계산합니다(그림 1-8 참고).

그림 1-8 손실 함수가 신경망의 출력 품질을 측정

기본적인 딥러닝 방식은 이 점수를 피드백 신호로 사용하여 현재 샘플의 손실 점수가 감소되는 방향으로 가중치 값을 조금씩 수정하는 것입니다(그림 1-9 참고). 이런 수정 과정은 딥러닝의 핵심 알고리즘인 역전파Backpropagation 알고리즘을 구현한 옵티마이저optimizer가 담당합니다. 다음 장에서 역전파가 어떻게 작동하는지 상세하게 설명하겠습니다.

초기에는 네트워크의 가중치가 랜덤한 값으로 할당되므로 랜덤한 변환을 연속적으로 수행합니다. 자연스럽게 출력은 기대한 것과 멀어지고 손실 점수가 매우 높을 것입니다. 하지만 네트워크가 모든 샘플을 처리하면서 가중치가 조금씩 올바른 방향으로 조정되고 손실 점수가 감소합니다. 이를 훈련 반복training loop이라고 하며, 충분한 횟수만큼 반복하면(일반적으로 수천 개의 샘플에서 수십 번 반복하면) 손실 함수를 최소화하는 가중치 값을 산출합니다. 최소한의 손실을 내는 네트워크가 타깃에 가능한 가장 가까운 출력을 만드는 모델이 됩니다. 다시 한 번 말하지만 이 간단한 메커니즘이 확장되면 마술 같은 결과를 만듭니다.

1.1.6 지금까지 딥러닝의 성과

딥러닝은 머신 러닝의 오래된 하위 분야이지만 2010년 초가 되어서야 유명해졌습니다. 이때부터 몇 년 동안 이 분야에서 일어난 혁신은 결코 작지 않습니다. 사람에게는 자연스럽고 직관적으로 보이지만 기계로는 오랫동안 해결하기 어려웠던 시각과 청각 같은 지각의 문제에서 괄목할 만한 성과를 냈습니다.

특히 딥러닝은 다음과 같은 획기적인 발전을 이루었습니다. 모두가 머신 러닝에서는 오랫동안 어려운 문제였습니다.

사람과 비슷한 수준의 이미지 분류

사람과 비슷한 수준의 음성 인식

사람과 비슷한 수준의 필기 인식

향상된 기계 번역

향상된 TTS Text-To-Speech 변환

변환 구글 나우 Now 와 아마존 알렉사 Alexa 같은 디지털 비서

와 아마존 알렉사 같은 디지털 비서 사람과 비슷한 수준의 자율 주행 능력

구글, 바이두 Baidu , 빙 Bing 에서 사용하는 향상된 광고 타기팅 targeting 8

, 빙 에서 사용하는 향상된 광고 타기팅 향상된 웹 검색 엔진의 결과

자연어 질문에 대답하는 능력

사람을 능가하는 바둑 실력

우리는 여전히 딥러닝이 할 수 있는 일의 전체 크기를 알아 가는 중입니다. 지각과 자연어 인식 외 에 형식 추론formal reasoning 9과 같은 다양한 문제에 적용하기 시작했습니다. 만약 성공한다면 딥러닝이 과학, 소프트웨어 개발 등에서 사람을 보조하게 되는 시대를 알리는 것일지도 모릅니다.

1.1.7 단기간의 과대 선전을 믿지 말자

딥러닝이 최근 몇 년간 놀라운 성과를 이끌어 냈지만, 사람들이 향후 10년 안에 기대하는 성과는 가능한 것보다 훨씬 높은 편입니다. 자율 주행 자동차 같은 세상을 바꿀 만한 몇 가지 애플리케이션은 이미 가까이 다가왔지만, 신뢰할 만한 대화 시스템이나 사람 수준의 기계 번역 그리고 사람 수준의 자연어 이해처럼 더 많은 것이 오랫동안 어려운 문제로 남아 있을 것 같습니다. 특히 사람 수준의 일반 지능general intelligence에 관한 이야기는 너무 심각하게 다루지 않는 것이 좋습니다. 단기간에 많이 성장할 것이라고 큰 기대를 하는 것은 위험합니다. 기술이 문제를 해결하지 못하면 연구에 대한 투자가 크게 줄어들고 발전은 오랫동안 정체될 것입니다.

예전에도 이런 일이 있었습니다. 과거에도 AI는 장밋빛 전망 뒤에 이어진 실망과 회의의 사이클을 두 번이나 경험했고, 결국 투자의 감소로 이어졌습니다. 1960년대 심볼릭 AI가 그 시작이었습니다. 초창기에 심볼릭 AI에 대한 기대는 매우 높았습니다. 심볼릭 AI 방법에 관한 가장 유명한 개척자이자 지지자 중 한 명인 마빈 민스키Marvin Minsky는 1967년에 “이번 세대 안에 …… ‘인공 지능’을 만드는 문제는 거의 해결될 것입니다.”라고 주장했습니다. 3년 후인 1970년에는 더 정확하게 정량화된 예측을 했습니다. “3년에서 8년 이내에 평균적인 사람 수준의 일반 지능을 가진 기계가 나올 것입니다.” 2016년에도 그런 성과는 여전히 먼 미래의 일로 보입니다. 아직까지 얼마나 오래 걸릴지 예측하는 방법조차 없습니다. 하지만 1960년대와 1970년대 초에는 몇몇 전문가들이 바로 근시일 안에 문제가 해결될 것이라고 믿었습니다(오늘날에도 많은 사람이 그렇습니다). 몇 년 후에 이런 높은 기대가 구체화되지 못하자 연구자들과 정부 자금은 이 분야에 대한 투자를 줄였고, 첫 번째 AI 겨울AI winter이 시작되었습니다(이는 냉전Cold War이 절정에 다다른 후에 나타나는 핵 겨울nuclear winter에 대한 비유입니다10).

이것이 마지막이 아니었습니다. 1980년대에 심볼릭 AI의 새로운 버전인 전문가 시스템expert system이 큰 기업들 사이에서 인기를 끌기 시작했습니다. 초창기 몇 개의 성공적인 스토리가 투자의 물결을 이끌었고, 전 세계 회사들이 전문가 시스템을 구축하기 위해 내부에 AI 부서를 꾸리기 시작했습니다. 1985년 즈음에 회사들은 이 기술에 연간 10억 달러 이상을 사용했습니다. 하지만 1990년대 초기에 이 시스템은 유지 비용이 비싸고, 확장하기 어려우며 제한된 범위를 가진다는 것이 증명되었고 관심은 사그라들었습니다. 이로 인해 두 번째 AI 겨울이 시작되었습니다. 우리는 현재 AI의 과대 선전과 실망의 세 번째 사이클을 목격하고 있는지도 모릅니다. 아직까지는 매우 낙관적인 단계입니다. 단기간의 기대를 조금 누그러뜨리고, 이 분야의 기술적 측면을 잘 모르는 사람들에게 딥러닝이 할 수 있는 것과 할 수 없는 것에 대해 명확히 이해시키는 것이 좋습니다.

1.1.8 AI에 대한 전망

AI에 대한 단기간의 기대는 비현실적일지도 모르지만, 장기적인 전망은 매우 밝습니다. 의료 진단에서부터 디지털 비서까지 확실히 이전과는 다른 여러 중요한 문제에 딥러닝을 적용하기 시작했습니다. AI 역사상 유례를 찾아볼 수 없는 수준의 투자에 크게 힘입어 AI 연구는 지난 5년간 놀라울 정도로 매우 빠르게 발전해 왔습니다. 하지만 이런 발전 중에서 비교적 아주 일부만이 현실 세계의 제품과 프로세스에 적용되었습니다. 딥러닝 연구 성과의 대부분은 아직 적용되지 않았거나, 적어도 전체 산업계를 통틀어서 딥러닝이 풀 수 있는 다양한 종류의 문제에는 적용되지 않았습니다. 일반 의사들은 아직 AI를 사용하지 않고, 회계사들도 마찬가지입니다. 아마 여러분도 일상생활에서 AI 기술을 사용하지 않고 있을 것입니다. 물론 스마트폰에 간단한 질문을 해서 그럴싸한 대답을 얻거나 아마존닷컴Amazon.com에서 유용한 상품 추천을 받고, 구글 포토Google Photos에서 ‘생일’을 검색해서 지난달의 딸아이 생일 파티 사진을 바로 찾을 수 있습니다. 이런 기술은 이전에 비해 많이 발전되었습니다. 하지만 이런 도구는 여전히 우리 일상생활의 액세서리일 뿐입니다. AI는 우리가 일하고 생각하고 생활하는 것의 중심에 들어오지 않았습니다.

AI가 아직 폭넓게 적용되지 못했기 때문에 지금 당장은 AI가 이 세상에 큰 영향을 줄 수 있으리라고 믿기 힘들지도 모릅니다. 비슷하게 1995년으로 돌아가 보면, 그때는 인터넷이 미래에 미칠 영향을 믿기 힘들었을 것입니다. 그 당시에 대부분의 사람들은 인터넷이 자신과 어떻게 연관이 있을지, 우리의 일상생활을 어떻게 바꿀지 이해하지 못했습니다. 오늘날 딥러닝과 AI도 동일합니다. 그러므로 실수를 범하지 말아야 합니다. 결국 AI의 시대는 도래할 것입니다. 그리 멀지 않은 미래에 AI가 우리의 비서가 되고, 심지어 친구가 될 것입니다. 우리의 질문에 대답하고 아이의 교육을 도와주고 건강을 보살펴 줄 것입니다. 식료품을 문 앞에 배달해 주고 A부터 B 지점까지 차를 운전해 줄 것입니다. 점점 더 복잡해지고 정보가 넘쳐 나는 세상에 대한 인터페이스interface가 될 것입니다. 더욱 중요한 것은 AI가 유전학에서부터 수학까지 모든 분야의 과학자들을 도와 새롭고 놀라운 발견을 이루어 냄으로써 인류 전체를 발전시킬 것이란 점입니다.

이 와중에 몇 번의 난관을 만날 수 있고 새로운 AI 겨울이 올 수도 있습니다. 마치 인터넷 업계가 1998~1999년 사이에 매우 과열되었다가 2000년대 초에 몰락하면서 투자가 멈추어 고통을 받았던 것과 같습니다. 하지만 결국 AI 시대는 올 것입니다. 오늘날의 인터넷처럼 우리 사회와 일상생활을 구성하는 거의 모든 과정에 AI가 적용될 것입니다.

단기간의 과대 선전은 믿지 말고 장기 비전을 믿으세요. AI가 아직 아무도 감히 생각하지도 못했던 완전한 모습으로 진정한 잠재성을 발휘하려면 어느 정도의 시간이 걸릴지 아무도 모릅니다. 하지만 AI의 시대는 올 것이고 이 세상을 환상적인 방식으로 변모시킬 것입니다.

역주 영국의 시인 조지 고든 바이런George Gordon Byron의 딸이며, 그녀가 해석 기관의 논문에 추가한 베르누이 수를 구하는 알고리즘 이 최초의 프로그램으로 인정되어 최초의 프로그래머라고 불립니다. 1980년 미국 국방성은 기존 언어를 대체하려고 만든 새 프로그램 언어에 그녀의 이름을 따서 에이다Ada란 이름을 붙였습니다. A. M. Turing, “Computing Machinery and Intelligence,” Mind 59, no. 236 (1950): 433-460. (https://goo.gl/ZiXntw) 역주 튜링은 이 논문에서 러브레이스의 반론을 포함하여 총 9개의 반론에 대한 답변을 기술했습니다. 역주 NIPS 2017에서 구글의 알리 라히미Ali Rahimi가 이를 연금술Alchemy에 비유(https://goo.gl/ajtvhX)해서 얀 르쿤Yann LeCun 박사와 다소 설전이 있기도 했습니다. 대부분의 사람들은 연금술이란 단어에 대해 우호적인 편이지만 여기서는 이론적 배경이 부족 하다는 것을 꼬집는 말입니다. 역주 종종 머신 러닝의 신경망을 인공 신경망artificial neural network으로, 생물학의 신경망을 생물학적 신경망biological neural network으로 구분하여 부르기도 합니다. 이 책에서는 신경망neural network과 네트워크network를 혼용하여 사용하고 있습니다. 저자 의 의도를 살리고 신경망이 진짜 ‘신경’과 관련 있다는 오해를 줄이기 위해 문맥상 어색하지 않다면 ‘network’는 그대로 ‘네트워크’라고 옮겼 습니다. 역주 이런 파라미터를 모델 파라미터라고도 합니다. 이 책에서는 혼동을 피하기 위해 파이썬 프로그램의 함수와 클래스에 전달할 때 사용하는 파라미터는 매개변수로 번역합니다. 역주 또는 비용 함수cost function라고도 부릅니다. 정확하게 말하면 비용 함수는 모든 훈련 데이터에 대한 손실 함수의 합을 나타내고 목적 함수는 더 일반적인 용어로 최적화하기 위한 대상 함수를 의미합니다. 보통 이 세 가지 용어를 크게 구분하지 않고 혼용하여 사용하는 경우가 많습니다. 역주 구글과 페이스북이 가장 진보된 온라인 광고 기술을 보유하고 있고 많은 머신 러닝 알고리즘을 광고의 타기팅과 최적화에 접목하고 있습니다. 역주 논리학에서 추론 규칙에 따라 새로운 논리식이나 규칙을 검사하는 방법입니다(출처: 국립국어원 우리말샘 사전). 역주 핵 겨울은 천문학자 칼 세이건Carl Sagan 등이 1983년에 주장한 것으로 핵 전쟁으로 대규모 환경 변화가 발생하여 지구에 빙하기 가 온다는 가설입니다.

베타테스터 실습 후기 | 목차 | 1.2 딥러닝 이전: 머신 러닝의 간략한 역사

이 글은 도서출판 길벗에서 출간한 “케라스 창시자에게 배우는 딥러닝“의 1장~3장입니다. 이 책의 저작권은 (주)도서출판 길벗에 있으므로 무단 복제 및 무단 전제를 금합니다.

코딩교육 티씨피스쿨

딥러닝이란?

딥러닝(Deep Learning)이란?

딥러닝(Deep Learning)이란 여러 층을 가진 인공신경망(Artificial Neural Network, ANN)을 사용하여 머신러닝 학습을 수행하는 것으로 심층학습이라고도 부릅니다. 따라서 딥러닝은 머신러닝과 전혀 다른 개념이 아니라 머신러닝의 한 종류라고 할 수 있습니다.

기존의 머신러닝에서는 학습하려는 데이터의 여러 특징 중에서 어떤 특징을 추출할지를 사람이 직접 분석하고 판단해야만 했습니다.

하지만 딥러닝에서는 기계가 자동으로 학습하려는 데이터에서 특징을 추출하여 학습하게 됩니다.

이처럼 딥러닝과 머신러닝의 가장 큰 차이점은 바로 기계의 자가 학습 여부로 볼 수 있습니다.

따라서 딥러닝이란 기계가 자동으로 대규모 데이터에서 중요한 패턴 및 규칙을 학습하고, 이를 토대로 의사결정이나 예측 등을 수행하는 기술로 정의내릴 수 있습니다.

인공신경망(Artificial Neural Network, ANN)

딥러닝에서 가장 기본이 되는 개념은 바로 신경망(Neural Network)입니다.

신경망이란 인간의 뇌가 가지는 생물학적 특성 중 뉴런의 연결 구조를 가리키며, 이러한 신경망을 본떠 만든 네트워크 구조를 인공신경망(Artificial Neural Network, ANN)이라고 부릅니다.

인간의 뇌에는 약 1,000억 개의 수많은 뉴런 즉 신경세포가 존재하며, 하나의 뉴런은 다른 뉴런에게서 신호를 받고 또 다른 뉴런에게 신호를 전달하는 단순한 역할만을 수행합니다. 하지만 인간의 뇌는 이러한 수많은 뉴런이 모여 만든 신호의 흐름을 기반으로 다양한 사고를 할 수 있게 되며, 이것을 컴퓨터로 구현하도록 노력한 것이 바로 인공신경망입니다.

인공지능 분야에서 신경망이란 보통 인공신경망을 지칭하며, 따라서 인공신경망을 따로 구분하지 않고 신경망이라고 부르기도 합니다.

인공신경망은 여러 뉴런이 서로 연결되어 있는 구조의 네트워크이며, 입력층(input layer)를 통해 학습하고자 하는 데이터를 입력받게 됩니다.

이렇게 입력된 데이터들은 여러 단계의 은닉층(hidden layer)을 지나면서 처리가 이루어져 출력층(output layer)을 통해 최종 결과가 출력되게 됩니다.

이러한 신경망을 3개 이상 중첩한 구조를 깊은 신경망(Deep Neural Network, DNN)이라고 부르며, 이를 활용한 머신러닝 학습을 특별히 딥러닝이라고 부르는 것입니다.

퍼셉트론(perceptron)

퍼셉트론(perceptron)이란 1957년 미국의 심리학자 프랑크 로젠블라트(Frank Rosenblatt)에 의해 고안된 인공신경망 이론을 설명한 최초의 알고리즘이라고 할 수 있습니다. 로젠블라트는 가장 간단한 퍼셉트론으로 입력층과 출력층만으로 구성된 단층 퍼셉트론(single layer perceptron)의 개념을 제안했습니다.

단층 퍼셉트론(single layer perceptron)이 동작하는 방식은 다음과 같습니다.

1. 각 노드의 입력치와 가중치를 서로 곱하여 모두 합한다.

2. 이렇게 합한 값을 활성화 함수가 가지고 있는 임계치(선택의 기준이 되는 값)와 서로 비교한다.

3. 만약 그 값이 임계치보다 크면 뉴런은 활성화되고, 만약 임계치보다 작으면 뉴런은 비활성화 된다.

이러한 단층 퍼셉트론에서 가중치와 임계치를 적절히 변경하면, 상황에 맞는 적절한 의사결정을 내릴 수 있게 됩니다.

또한, 단층 퍼셉트론을 여러 개 조합하면 더욱 복잡한 문제도 판단할 수 있게 되며, 이를 다층 퍼셉트론(MultiLayer Perceptron, MLP)이라고 부릅니다.

다층 퍼셉트론은 단층 퍼셉트론을 사용해서는 풀지 못하는 비선형 문제까지도 풀 수 있습니다.

일반적으로 인공신경망이란 이와 같은 다층 퍼셉트론의 조합이라 할 수 있습니다.

연습문제

위키백과, 우리 모두의 백과사전

심층 학습(深層學習) 또는 딥 러닝(영어: deep structured learning, deep learning 또는 hierarchical learning)은 여러 비선형 변환기법의 조합을 통해 높은 수준의 추상화(abstractions, 다량의 데이터나 복잡한 자료들 속에서 핵심적인 내용 또는 기능을 요약하는 작업)를 시도하는 기계 학습 알고리즘의 집합[1]으로 정의되며, 큰 틀에서 사람의 사고방식을 컴퓨터에게 가르치는 기계학습의 한 분야라고 이야기할 수 있다.

어떠한 데이터가 있을 때 이를 컴퓨터가 알아 들을 수 있는 형태(예를 들어 이미지의 경우는 픽셀정보를 열벡터로 표현하는 등)로 표현(representation)하고 이를 학습에 적용하기 위해 많은 연구(어떻게 하면 더 좋은 표현기법을 만들고 또 어떻게 이것들을 학습할 모델을 만들지에 대한)가 진행되고 있으며, 이러한 노력의 결과로 deep neural networks, convolutional deep neural networks, deep belief networks와 같은 다양한 딥 러닝 기법들이 컴퓨터 비전, 음성인식, 자연어 처리, 음성/신호처리 등의 분야에 적용되어 최첨단의 결과들을 보여주고 있다.

2012년 스탠포드대학의 앤드류 응과 구글이 함께한 딥 러닝 프로젝트에서는 16,000개의 컴퓨터 프로세서와 10억 개 이상의 neural networks 그리고 DNN(deep neural networks)을 이용하여 유튜브에 업로드 되어 있는 천만 개 넘는 비디오 중 고양이 인식에 성공하였다.[2] 이 소프트웨어 프레임워크를 논문에서는 DistBelief로 언급하고 있다[3]. 이뿐만 아니라 마이크로소프트, 페이스북[4] 등도 연구팀을 인수하거나 자체 개발팀을 운영하면서 인상적인 업적들을 만들어 내고 있다.

딥 러닝의 역사 [ 편집 ]

MIT가 2013년을 빛낼 10대 혁신기술 중 하나로 선정[5] 하고 가트너(Gartner, Inc.)가 2014 세계 IT 시장 10대 주요 예측[6]에 포함시키는 등 최근들어 딥 러닝에 대한 관심이 높아지고 있지만 사실 딥 러닝 구조는 인공신경망(ANN, artificial neural networks)에 기반하여 설계된 개념으로 역사를 따지자면 최소 1980년 Kunihiko Fukushima에 의해 소개 된 Neocognitron[7]까지 거슬러 올라가야 한다.

1989년에 얀 르쿤과 그의 동료들은 오류역전파 알고리즘(backpropagation algorithm)[8]에 기반하여 우편물에 손으로 쓰여진 우편번호를 인식하는 deep neural networks를 소개[9] 했다. 알고리즘이 성공적으로 동작했음에도 불구하고, 신경망 학습에 소요되는 시간(10 개의 숫자를 인식하기 위해 학습하는 시간)이 거의 3일이 걸렸고 이것은 다른분야에 일반적으로 적용되기에는 비현실적인 것으로 여겨졌다.

많은 요소들이 느린 속도에 원인을 제공했는데, 그 중 하나는 1991년 Jürgen Schmidhuber의 제자였던 Sepp Hochreiter에 의해 분석된 vanishing gradient problem(지역최솟값에 머무르게 되는 원인)이었다[10][11]. 또한 불연속 시뮬레이션에서 초기 상태를 어떻게 선택하느냐에 따라 수렴이 안되고 진동 또는 발산하는 문제, 트레이닝셋에 너무 가깝게 맞추어 학습되는 과적합 (Overfitting) 문제, 원론적으로 생물학적 신경망과는 다르다는 이슈들이 끊임 없이 제기되면서 인공신경망은 관심에서 멀어졌고 90년대와 2000년대에는 서포트 벡터 머신 같은 기법들이 각광받게 된다.

본격적으로 딥 러닝이란 용어를 사용한 것은 2000년대 딥 러닝의 중흥기를 이끌어간다고 평가할 수 있는 제프리 힌튼[12]과 Ruslan Salakhutdinov에 의해서이며, 기존 신경망의 과적합 문제를 해결하기 위해 이들은 unsupervised RBM(restricted Boltzmann machine)을 통해 학습시킬 앞먹임 신경망(Feedforward Neural Network)의 각 층을 효과적으로 사전훈련(pre-trainning)하여 과적합을 방지할 수 있는 수준의 initialize point를 잡았고, 이를 다시 supervised backpropagation를 사용[13]하는 형태로 학습을 진행한다.

또한 2013년에는 신호처리학회인 ICASSP에서 RBM을 대체하여 과적합을 방지할 수 있는 Drop-out[14]이라는 개념이 소개되면서 사전훈련보다 훨씬 더 간단하고 강력한 형태로 과적합을 방지할 수 있게 되었다.

왜 다시 딥 러닝인가? [ 편집 ]

딥 러닝이 부활하게 된 이유는 크게 세 가지로 꼽힌다. 첫 번째는 앞서 딥 러닝의 역사에서 언급한 바 있는 기존 인공신경망 모델의 단점이 극복되었다는 점이다. 그러나 과적합 문제만 해결되었다고 해서 느린 학습시간이 줄어드는 것은 아니다. 두 번째 이유로, 여기에는 하드웨어의 발전이라는 또다른 요인이 존재 한다. 특히 강력한 GPU는 딥 러닝에서 복잡한 행렬 연산에 소요되는 시간을 크게 단축시켰다. 마지막으로 언급하지만 가장 중요한 세 번째 이유로 빅 데이터를 들 수 있다. 대량으로 쏟아져 나오는 데이터들, 그리고 그것들을 수집하기 위한 노력 특히 SNS 사용자들에 의해 생산되는 다량의 자료와 태그정보들 모두가 종합되고 분석 되어 학습에 이용될 수 있다. – 인공신경망의 학습에 사용되는 트레이닝벡터는 이름이 붙어 있는(labeled) 데이터여야 하는데(supervised learning의 경우) 대량의 트레이닝셋 모두에 label을 달아주는 일은 불가능한 일이다. 이런 이유로 초기 학습에 사용되는 일부 데이터에 대해서만 지도학습(supervised learning)을 수행하고 나머지 트레이닝셋에 대해서는 비지도학습(unsupervised learning)을 진행하며, 학습된 결과는 기존 학습의 결과와 앞서 분석된 메타태그 정보들을 종합하여 인식기가 완성 된다.

딥 러닝의 부활 이후 다양한 분야, 특히 자동 음성 인식(ASR, automatic speech recognition)과 컴퓨터비전 분야에서 최고수준의 성능을 보여주고 있으며 이들은 보통 딥 러닝의 새로운 응용들의 지속적인 성능 향상을 위해 만들어진 TIMIT(Texas Instruments와 MIT가 제작한 음성 Database), MNIST(이미지 클러스터링을 위한 hand-written 숫자 이미지 데이터베이스로 National Institute of Standards and Technology가 제작) 등의 데이터베이스를 사용했다. 최근에는 Convolution Neural Networks 기반의 딥 러닝 알고리즘이 뛰어난 성능을 발휘하고 있으며, 컴퓨터비전과 음성인식등의 분야에서 특히 탁월한 성능을 보이고 있다.

다양한 종류의 심층 신경망 구조가 존재하지만, 대부분의 경우 대표적인 몇 가지 구조들에서 파생된 것이다. 그렇지만 여러 종류의 구조들의 성능을 동시에 비교하는 것이 항상 가능한 것은 아닌데, 그 이유는 특정 구조들의 경우 주어진 데이터 집합에 적합하도록 구현되지 않은 경우도 있기 때문이다.

심층 신경망(Deep Neural Network, DNN) [ 편집 ]

심층 신경망(Deep Neural Network, DNN)은 입력층(input layer)과 출력층(output layer) 사이에 여러 개의 은닉층(hidden layer)들로 이뤄진 인공신경망(Artificial Neural Network, ANN)이다.[15][16] 심층 신경망은 일반적인 인공신경망과 마찬가지로 복잡한 비선형 관계(non-linear relationship)들을 모델링할 수 있다. 예를 들어, 물체 식별 모델을 위한 심층 신경망 구조에서는 각 물체가 영상의 기본적 요소들의 계층적 구성으로 표현될 수 있다.[17] 이때, 추가 계층들은 점진적으로 모여진 하위 계층들의 특징들을 규합시킬 수 있다. 심층 신경망의 이러한 특징은, 비슷하게 수행된 인공신경망에 비해 더 적은 수의 유닛(unit, node)들 만으로도 복잡한 데이터를 모델링할 수 있게 해준다.[15]

이전의 심층 신경망들은 보통 앞먹임 신경망으로 설계되어 왔지만, 최근의 연구들은 심층 학습 구조들을 순환 신경망(Recurrent Neural Network, RNN)에 성공적으로 적용했다. 일례로 언어 모델링(language modeling) 분야에 심층 신경망 구조를 적용한 사례 등이 있다[18] 합성곱 신경망(Convolutional Neural Network, CNN)의 경우에는 컴퓨터 비전(computer vision) 분야에서 잘 적용되었을 뿐만 아니라, 각각의 성공적인 적용 사례에 대한 문서화 또한 잘 되어 있다.[19] 더욱 최근에는 합성곱 신경망이 자동음성인식(Automatic Speech Recognition, ASR)을 위한 음향 모델링(acoustic modeling) 분야에 적용되었으며, 기존의 모델들보다 더욱 성공적으로 적용되었다는 평가를 받고 있다.[20]

심층 신경망은 표준 오류역전파 알고리즘으로 학습될 수 있다. 이때, 가중치(weight)들은 아래의 등식을 이용한 확률적 경사 하강법(stochastic gradient descent)을 통하여 갱신될 수 있다.

Δ w i j ( t + 1 ) = Δ w i j ( t ) + η ∂ C ∂ w i j {\displaystyle \Delta w_{ij}(t+1)=\Delta w_{ij}(t)+\eta {\frac {\partial C}{\partial w_{ij}}}}

여기서, η {\displaystyle \eta } 는 학습률(learning rate)을 의미하며, C {\displaystyle C} 는 비용함수(cost function)를 의미한다. 비용함수의 선택은 학습의 형태(지도 학습, 자율 학습 (기계 학습), 강화 학습 등)와 활성화함수(activation function)같은 요인들에 의해서 결정된다. 예를 들면, 다종 분류 문제(multiclass classification problem)에 지도 학습을 수행할 때, 일반적으로 활성화함수와 비용함수는 각각 softmax 함수와 교차 엔트로피 함수(cross entropy function)로 결정된다. softmax 함수는 p j = exp ⁡ ( x j ) ∑ k exp ⁡ ( x k ) {\displaystyle p_{j}={\frac {\exp(x_{j})}{\sum _{k}\exp(x_{k})}}} 로 정의된다, 이때, p j {\displaystyle p_{j}} 는 클래스 확률(class probability)을 나타내며, x j {\displaystyle x_{j}} 와 x k {\displaystyle x_{k}} 는 각각 유닛 j {\displaystyle j} 로의 전체 입력(total input)과 유닛 k {\displaystyle k} 로의 전체 입력을 나타낸다. 교차 엔트로피는 C = − ∑ j d j log ⁡ ( p j ) {\displaystyle C=-\sum _{j}d_{j}\log(p_{j})} 로 정의된다, 이때, d j {\displaystyle d_{j}} 는 출력 유닛 j {\displaystyle j} 에 대한 목표 확률(target probability)을 나타내며, p j {\displaystyle p_{j}} 는 해당 활성화함수를 적용한 이후의 j {\displaystyle j} 에 대한 확률 출력(probability output)이다.[21]

심층 신경망의 문제점 [ 편집 ]

기존의 인공신경망과 같이, 심층 신경망 또한 나이브(naive)한 방식으로 학습될 경우 많은 문제들이 발생할 수 있다. 그 중 과적합과 높은 시간 복잡도가 흔히 발생하는 문제들이다.

심층 신경망이 과적합에 취약한 이유는 추가된 계층들이 학습 데이터의 rare dependency의 모형화가 가능하도록 해주기 때문이다. 과적합을 극복하기 위해서 weight decay ( ℓ 2 {\displaystyle \ell _{2}} –regularization) 또는 sparsity ( ℓ 1 {\displaystyle \ell _{1}} –regularization) 와 같은 정칙화(regularization) 방법들이 사용될 수 있다.[22] 그리고 최근에 들어서는 심층 신경망에 적용되고 있는 정칙화 방법 중 하나로 dropout 정칙화가 등장했다. dropout 정칙화에서는 학습 도중 은닉 계층들의 몇몇 유닛들이 임의로 생략된다. 이러한 방법은 학습 데이터(training data)에서 발생할 수 있는 rare dependency를 해결하는데 도움을 준다.[23]

오차역전파법과 경사 하강법은 구현의 용이함과 국지적 최적화(local optima)에 잘 도달한다는 특성으로 인해 다른 방법들에 비해 선호되어온 방법들이다. 그러나 이 방법들은 심층 신경망을 학습 시킬 때 시간 복잡도가 매우 높다. 심층 신경망을 학습시킬 때에는 크기(계층의 수 와 계층 당 유닛 수), 학습률, 초기 가중치 등 많은 매개변수(parameter)들이 고려되어야 한다. 하지만 최적의 매개변수들을 찾기 위해 매개변수 공간 전부를 확인하는 것은 계산에 필요한 시간과 자원의 제약으로 인해 불가능하다. 시간 복잡도를 해결하기 위해, 미니 배치(mini batch, 여러 학습 예제들의 경사를 동시에 계산), 드롭 아웃(drop out)과 같은 다양한 ‘묘책’들이 등장하였다.[24] 또한, 행렬 및 벡터 계산에 특화된 GPU는 많은 처리량을 바탕으로 두드러지는 학습 속도 향상을 보여주었다.[16]

합성곱 신경망(Convolutional Neural Network, CNN) [ 편집 ]

합성곱 신경망(Convolutional Neural Network, CNN)은 최소한의 전처리(preprocess)를 사용하도록 설계된 다계층 퍼셉트론(multilayer perceptrons)의 한 종류이다. CNN은 하나 또는 여러개의 합성곱 계층과 그 위에 올려진 일반적인 인공 신경망 계층들로 이루어져 있으며, 가중치와 통합 계층(pooling layer)들을 추가로 활용한다. 이러한 구조 덕분에 CNN은 2차원 구조의 입력 데이터를 충분히 활용할 수 있다. 다른 딥 러닝 구조들과 비교해서, CNN은 영상, 음성 분야 모두에서 좋은 성능을 보여준다. CNN은 또한 표준 역전달을 통해 훈련될 수 있다. CNN은 다른 피드포워드 인공신경망 기법들보다 쉽게 훈련되는 편이고 적은 수의 매개변수를 사용한다는 이점이 있다. 최근 딥 러닝에서는 합성곱 심층 신뢰 신경망 (Convolutional Deep Belief Network, CDBN) 가 개발되었는데, 기존 CNN과 구조적으로 매우 비슷해서, 그림의 2차원 구조를 잘 이용할 수 있으며 그와 동시에 심층 신뢰 신경망 (Deep Belief Network, DBN)에서의 선훈련에 의한 장점도 취할 수 있다. CDBN은 다양한 영상과 신호 처리 기법에 사용될 수 있는 일반적인 구조를 제공하며 CIFAR[25]와 같은 표준 이미지 데이터에 대한 여러 벤치마크 결과에 사용되고 있다.

순환 신경망(Recurrent Neural Network, RNN) [ 편집 ]

순환 신경망은 인공신경망을 구성하는 유닛 사이의 연결이 Directed cycle을 구성하는 신경망을 말한다. 순환 신경망은 앞먹임 신경망과 달리, 임의의 입력을 처리하기 위해 신경망 내부의 메모리를 활용할 수 있다. 이러한 특성에 의해 순환 신경망은 필기체 인식(Handwriting recognition)과 같은 분야에 활용되고 있고, 높은 인식률을 나타낸다.[26] 순환 신경망을 구성할 수 있는 구조에는 여러가지 방식이 사용되고 있다. 완전 순환망(Fully Recurrent Network), Hopfield Network, Elman Network, Echo state network(ESN), Long short term memory network(LSTM), Bi-directional RNN, Continuous-time RNN(CTRNN), Hierarchical RNN, Second Order RNN 등이 대표적인 예이다. 순환 신경망을 훈련(Training)시키기 위해 대표적으로 경사 하강법, Hessian Free Optimization, Global Optimization Methods 방식이 쓰이고 있다. 하지만 순환 신경망은 많은 수의 뉴런 유닛이나 많은 수의 입력 유닛이 있는 경우에 훈련이 쉽지 않은 스케일링 이슈를 가지고있다.

제한 볼츠만 머신 (Restricted Boltzmann Machine, RBM) [ 편집 ]

볼츠만 머신에서, 층간 연결을 없앤 형태의 모델이다. 층간 연결을 없애면, 머신은 가시 유닛(Visible Unit)과 은닉 유닛(Hidden Unit)으로 이루어진 무방향 이분 그래프 형태의 모양이 된다. 결론적으로 모델의 층간 연결을 없앰으로써, 얻는 이점으로 뉴럴 네트워크는 깊어질 수 있었다. 가장 큰 이점은 가시 유닛이 관찰되고 고정(Clamped)되었을 때 은닉 유닛을 추론(Inference) 하는 MCMC 과정이 단 한 번에 끝난다는 것이다. RBM은 확률모델의 계산이 불가능하기 때문에, 학습시 근사법인 MCMC 나 또는 제프리 힌튼 교수가 발견한 CD(Contrastive Divergence)를 사용하는데, RBM의 모델의 간단함에서 오는 추론에 대한 이점은 샘플링 근간의 학습법이 실용적인 문제에 적용되는데 기여했다. 자세한 학습 방법은 아래에 설명되어 있다.

RBM은 DBN의 기본 뼈대가 된다, RBM을 쌓아올리면서(Stacking), Greedy하게 학습함으로써, DBN을 완성한다. DBN을 아는 사람은 기본적으로 RBM은 무방향이기에, RBM이 방향성 있는 모델인 DBN이 되는지 의아할 것이다. 이는 제프리 힌튼의 제자인 Teh, Y. W의 우연 발견적인 연구 성과인데, 원래 힌튼 교수는 Graphical Model 이 방향성을 가질 때 생기는 Explaining Away 효과 때문에 학습이 매우 어려워 연구를 무방향성 모델로 선회했다가, RBM을 쌓으면, 다층 RBM이 되는 것이 아니라, DBN과 비슷해진다는 사실을 발견하게 된다. 이 발견은 DBN학습을 단순히 여러 개의 RBM 학습으로 환원시킴으로써(앞서서 얘기했듯이 RBM은 학습이 어렵지 않다) 어려운 DBN 학습의 복잡도를 층의 개수에 비례하는 복잡도로 낮추었다. 이는 선행학습(Pre-training) 과 미세조정(fine-tuning)의 새로운 학습 패러다임으로 발전하게 된다.

RBM 훈련 과정에서의 가중치 갱신은, 다음의 식을 기반으로 경사 하강법을 통해 이루어진다. Δ w i j ( t + 1 ) = w i j ( t ) + η ∂ log ⁡ ( p ( v ) ) ∂ w i j {\displaystyle \Delta w_{ij}(t+1)=w_{ij}(t)+\eta {\frac {\partial \log(p(v))}{\partial w_{ij}}}} 여기서 p ( v ) {\displaystyle p(v)} 는 다음의 식으로 주어지는 가시 벡터의 확률을 나타내고, p ( v ) = 1 Z ∑ h e − E ( v , h ) {\displaystyle p(v)={\frac {1}{Z}}\sum _{h}e^{-E(v,h)}} Z {\displaystyle Z} 는 정규화(normalization)를 위해 사용되는 분배함수(partition function)이며, E ( v , h ) {\displaystyle E(v,h)} 는 신경망의 상태(state)에 부여되는 에너지 함수이다. 에너지가 낮을수록 해당 신경망이 더 적합한 상태임을 의미한다. 기울기 ∂ log ⁡ ( p ( v ) ) ∂ w i j {\displaystyle {\frac {\partial \log(p(v))}{\partial w_{ij}}}} 는 좀 더 간단하게 ⟨ v i h j ⟩ data − ⟨ v i h j ⟩ model {\displaystyle \langle v_{i}h_{j}\rangle _{\text{data}}-\langle v_{i}h_{j}\rangle _{\text{model}}} 로 표현이 되는데 이 때 ⟨ ⋯ ⟩ p {\displaystyle \langle \cdots \rangle _{p}} 는 분포 p {\displaystyle p} 에 관한 평균을 의미한다. ⟨ v i h j ⟩ model {\displaystyle \langle v_{i}h_{j}\rangle _{\text{model}}} 을 샘플링 하려면 alternating Gibbs sampling을 매우 많이 반복해야 하기 때문에 CD에서는 alternating Gibbs sampling을 n {\displaystyle n} 회만 반복한다.(실험을 통해 n = 1 {\displaystyle n=1} 일 경우에도 충분한 성능이 나온다고 알려져 있다). n {\displaystyle n} 회 반복 후 샘플링 된 데이터가 ⟨ v i h j ⟩ model {\displaystyle \langle v_{i}h_{j}\rangle _{\text{model}}} 를 대신한다. CD 수행 과정은 다음과 같다:

가시 유닛들을 훈련 벡터로 초기화 한다. 다음의 가시 유닛들이 주어지면 은닉 유닛들을 모두 동시에 갱신한다: p ( h j = 1 ∣ V ) = σ ( b j + ∑ i v i w i j ) {\displaystyle p(h_{j}=1\mid {\textbf {V}})=\sigma (b_{j}+\sum _{i}v_{i}w_{ij})} σ {\displaystyle \sigma } b j {\displaystyle b_{j}} h j {\displaystyle h_{j}} 다음의 은닉 유닛들이 주어지면 가시 유닛들을 모두 동시에 갱신한다: p ( v i = 1 ∣ H ) = σ ( a i + ∑ j h j w i j ) {\displaystyle p(v_{i}=1\mid {\textbf {H}})=\sigma (a_{i}+\sum _{j}h_{j}w_{ij})} a i {\displaystyle a_{i}} v i {\displaystyle v_{i}} 복원된 가시 유닛들이 주어지면 2에서 쓰인 식을 이용하여 은닉 유닛들을 모두 동시에 다시 갱신한다. 다음과 같이 가중치를 갱신한다: Δ w i j ∝ ⟨ v i h j ⟩ data − ⟨ v i h j ⟩ reconstruction {\displaystyle \Delta w_{ij}\propto \langle v_{i}h_{j}\rangle _{\text{data}}-\langle v_{i}h_{j}\rangle _{\text{reconstruction}}}

심층 신뢰 신경망 (Deep Belief Network, DBN) [ 편집 ]

심층 신뢰 신경망(Deep Belief Network, DBN)이란 기계학습에서 사용되는 그래프 생성 모형(generative graphical model)으로, 딥 러닝에서는 잠재변수(latent variable)의 다중계층으로 이루어진 심층 신경망을 의미한다. 계층 간에는 연결이 있지만 계층 내의 유닛 간에는 연결이 없다는 특징이 있다.

DBN은 생성 모형이라는 특성상 선행학습에 사용될 수 있고, 선행학습을 통해 초기 가중치를 학습한 후 역전파 혹은 다른 판별 알고리즘을 통해 가중치의 미조정을 할 수 있다. 이러한 특성은 훈련용 데이터가 적을 때 굉장히 유용한데, 이는 훈련용 데이터가 적을수록 가중치의 초기값이 결과적인 모델에 끼치는 영향이 세지기 때문이다. 선행학습된 가중치 초기값은 임의로 설정된 가중치 초기값에 비해 최적의 가중치에 가깝게 되고 이는 미조정 단계의 성능과 속도향상을 가능케 한다.

DBN은 비지도 방식으로 계층마다 학습을 진행하는데 이때 각각의 계층은 보통 RBM의 형태를 띄고 있다. RBM들을 쌓아 올리면서 DBN을 훈련시키는 방법에 대한 설명은 아래에 제공 되어 있다. RBM은 에너지 기반의 생성 모형으로 가시 유닛과 은닉 유닛으로 이루어진 무방향 이분 그래프 형태이다. 가시 유닛들과 은닉 유닛들 사이에만 연결이 존재한다.

RBM이 훈련되고 나면 다른 RBM이 그 위에 쌓아 올려짐으로써 다중 계층 모형을 형성한다. RBM이 쌓아 올려질 때마다, 이미 훈련된 RBM의 최상위 계층이 새로 쌓이는 RBM의 입력으로 쓰인다. 이 입력을 이용하여 새 RBM이 훈련되고, 원하는 만큼의 계층이 쌓일 때까지 해당 과정이 반복된다.

실험결과에 따르면, CD의 최대가능도 근사가 굉장히 투박함에도 불구하고, 심층 신경망 구조를 학습하기에는 충분히 효과적인 방식이라고 한다.

심층 Q-네트워크(Deep Q-Networks) [ 편집 ]

2015년 2월, 강화 학습을 위한 가장 최신 딥 러닝 모델이 네이처에 소개되었다.[27]

응용 [ 편집 ]

자동 음성 인식 [ 편집 ]

아래 표는 TIMIT 데이터에 대한 자동 음성 인식 결과를 보여준다. 이 데이터셋은 딥 러닝의 초창기 평가를 위한 일반적인 데이터로서, 미국의 8가지 방언을 사용하는 총 630명의 사람이 읽은 10가지 문장으로 이루어져 있다.[28] 데이터의 크기가 작기 때문에 다양한 설정을 효과적으로 적용할 수 있다. 더 중요한 점은 TIMIT에서 음소 순서 인식(phone-sequence recognition)을 고려한다는 점이다. 따라서, 단어 순서 인식(word-sequence recognition)과는 달리 아주 약한 “언어모델”을 허용하고 음성 인식에서의 음향 모델 측면을 더 쉽게 분석할 수 있다. 2009 ~ 2010년 무렵, 크고 작은 범위의 음성인식에 대한 딥 러닝 기술 활용을 위해서 많은 투자가 있었는데, Li Deng과 그의 동료들은 TIMIT에서의 GMM 과 DNN 모델을 비교하는 실험을 수행하였다.[29][30] 결국 그들은 음성인식에서의 딥 러닝 활용에 있어서 가장 앞서나가게 되었다. 이 분석은 먼저 식별적 DNN과 발생적 모델 사이의 성능 비교(1.5% 이하의 오차율)로 수행되었다. 아래 표에 나타난 오차율은 앞에서 말한 초창기 실험을 포함하여 과거 20 여 년 간 수행된 실험들의 음소 오차율(Phone error rate)을 요약한 것이다.

방식 PER (%) Randomly Initialized RNN 26.1 Bayesian Triphone GMM-HMM 25.6 Hidden Trajectory (Generative) Model 24.8 Monophone Randomly Initialized DNN 23.4 Monophone DBN-DNN 22.4 Triphone GMM-HMM with BMMI Training 21.7 Monophone DBN-DNN on fbank 20.7 Convolutional DNN[31] 20.0 Convolutional DNN w. Heterogeneous Pooling 18.7 Ensemble DNN/CNN/RNN[32] 18.2 Bidirectional LSTM 17.9

TIMIT로부터 대량 어휘 음성인식(large vocabulary speech recognition)으로의 딥 러닝의 확장은 2010년 산업계 연구자들에 의해 성공적으로 수행되었다.[33][34] 자동 음성 인식 분야의 2014년 10월까지의 최신 동향은 마이크로소프트 리서치의 책 에 잘 정리되어있다.[35] 또한 자동 음성인식과 관련된 배경 지식과 다양한 기계학습 패러다임의 영향을 잘 정리한 글을 참고할 수 있다.[36] 대용량 자동 음성인식은 최근 딥 러닝의 역사에서 산업계와 학계를 모두 아우르는 처음이자 가장 성공적인 케이스라고 할 수 있다. 2010년부터 2014년까지, 신호처리와 음성인식에 대한 주요 학술회의인 IEEE-ICASSP 와 Interspeech는 음성인식을 위한 딥 러닝 분야의 합격 논문 개수에 있어서 거의 기하급수적인 성장을 보여주었다. 더 중요한 것은, 현재 모든 주요 상업 음성인식 시스템(MS 코타나, 스카이프 번역기, 구글 나우, 애플 시리 등등)이 딥 러닝 기법에 기반하고있다는 점이다.[37][38][39] 뉘앙스 커뮤니케이션즈의 CTO의 최근 인터뷰도 참고할만하다.[40]

영상 인식 [ 편집 ]

일반적으로 이미지 분류를 위한 평가 데이터로서 MNIST 데이터베이스 데이터가 이용된다. MNIST는 손으로 쓴 숫자들로 구성되어 있으며, 60000개의 학습 예제들과 10000개의 테스트 예제들을 포함한다. TIMIT와 유사하게, 적은 용량의 MNIST 데이터는 복수의 테스트 환경설정이 가능하게 해준다. MNIST 데이터에 대한 종합적인 결과들을 [123]에서 확인할 수 있다. 현재까지 MNIST 데이터에 대한 가장 우수한 결과는 Ciresan 등이 작성한[41]에서 달성되었으며, 오차율 0.23%를 기록했다.

제프리 힌튼과 그의 제자들은 2012년 가을에 대규모 ImageNet 대회에서 당시 최신 기계 학습 방법들의 성능을 훌쩍 뛰어넘는 결과를 보여주며 우승하였다. 이로 인해 컴퓨터 비전의 주요 분야인 영상 인식 및 사물 인식 분야에서의 딥 러닝의 중요성이 대두되었다. 그 당시, 대규모 음성인식에 딥 러닝이 상당히 잘 작동한다는 것을 알고 있었던 그들은, 20년 전에 고안된 심층 합성곱 신경망 구조를 대규모 작업에 맞도록 대규모로 사용하였다. 2013년부터 2014년에 이르기까지, 딥 러닝을 이용한 ImageNet 과제 결과의 오차율은 대규모 음성인식 분야와 추세를 같이하며 빠르게 줄어나갔다.

자동 음성인식 분야의 자동 음성 번역 및 이해 분야로의 확장과 마찬가지로, 이미지 분류 분야는 자동 영상 캡션닝(captioning)이라는 더욱 도전적인 분야로 확장되었다. 자동 영상 캡셔닝은 딥 러닝을 핵심 기반 기술로 사용하는 분야이다.[42] [43] [44] [45]

적용 사례로는 360°카메라 화면을 이해할 수 있도록 딥 러닝을 통해 학습된 자동차 탑재용 컴퓨터 등이 있다.[46]

자연어 처리 [ 편집 ]

2000년대 초부터 인공신경망은 언어 모형을 구현하기 위해 사용되어 왔다. 이 분야에서의 핵심 기법은 negative sampling과 단어 표현(word embedding)이다. word2vec과 같은 단어 표현은 데이터집합으로 주어진 단어들 사이의 관계를 학습하는 인공신경망을 이용하여 단어를 벡터 공간 상에 나타내는 것이라고 할 수 있다. 단어표현을 재귀 신경망(recursive neural network)의 입력 계층으로 이용하면 해당 신경망이 compositional vector grammar를 통해 문장과 구(phrase)를 분석하도록 학습시킬 수 있다. 이 compositional vector grammar는 재귀 신경망으로 구현된 probabilistic context free grammar (PCFG) 라고 할 수 있다. 단어표현을 기반으로 구성된 Recursive autoencoder는 문장 간의 유사도 판단과 의역 탐지를 하도록 훈련이 가능하다. 이러한 심층 인공신경망 구조들은 자동 번역(machine translation), 감정 분석(sentiment analysis), 정보 검색(information retrieval)을 비롯한 다양한 자연언어처리 관련 연구에서 최첨단 기술로서 쓰이고 있다.

약물 발견과 독성학 [ 편집 ]

제약 산업에서 많은 수의 약들은 시장에 출시되지 못한다. 이렇게 실패하는 이유중 하나는 생각한 만큼의 효험을 보이지 못하거나, 예상치 못한 다른 작용을 일으키기 때문이다. 이를 해결하기 위해 2012년 George Dahl의 팀은 다중 DNN을 약의 효험을 예측하는 데에 활용하여 “Merck Molecular Activity Challenge”에 우승하였고[47][48], 2014년 Sepp Hochreiter의 팀은 예상치 못한 다른 작용을 사전에 탐지하기 위해 딥 러닝을 활용하여 “Tox21 Data Challenge”에서 우승하였다.[49][50] 이러한 성공은 딥 러닝이 약학에 있어 가상 실험 방법(Virtual Screening Method)에 적합함을 보여준다.[51][52] 현재 많은 수의 연구자들이 여러가지 데이터를 조합하여 약물을 발견하는 데에 딥 러닝을 활용하고 있다.[53]

고객 관계 관리 [ 편집 ]

최근 직접 마케팅 기획, 고객 관계 관리 자동화를 위한 수단 적합성 산출 등에 직접적으로 심층 강화 학습을 활용하여 성공하는 사례들이 알려지고 있다. 인공 신경망은 RFM으로 정의된 고객들에 대한 활용 가능한 마케팅 활동의 값을 예측할 때 사용되었다. 예측된 함수는 고객 생명 주기 값(customer lifetime value, CLV)으로 변환되어 사용되었다.[54]

딥 러닝과 인간 두뇌 [ 편집 ]

딥 러닝은 인지신경과학자(Cognitive neuroscientist)들이 1990년대 초에 제안한 뇌 발달(Brain development)과 밀접한 관련이 있다.[55][56][57] 이러한 발달 관점의 이론들이 도입되면서, 순수한 전산 기반의 딥 러닝 모델들을 위한 기술적인 기반도 마련되었다. 발달 이론에서는 신경발달요인(Nerve growth factor)의 물결과 같은 뇌에서의 다양한 학습 역학이 결국은 서로 연관된 신경망들의 자기조직화를 도와준다는 특징이 있다. 이는 나중에 전산 기반의 딥 러닝 모델에서도 활용되어서, 인공신경망의 계층적인 필터 구조(각 동작 환경에서 필요한 정보만 걸러내는 다중 계층 구조)가 실제 뇌의 피질과 유사해보이게 되었다. 이러한 과정을 통해 자기조직적인 변환기의 계층구조가 만들어지고 각 환경에 맞도록 조율된다. 1995년에 뉴욕 타임스에서는 다음과 같이 말하였다. “…유아의 두뇌는 영양적인 요인의 영향으로 스스로 조직화되는 것 같다… 뇌에서 한 층의 조직이 먼저 성숙되고 다른 부분과 순차적으로 연결되는 방식으로 전체 뇌가 성숙될 때까지 반복된다.”[58]

인간의 인식 발달 및 진화와 관련하여 딥 러닝의 중요성은 많은 과학자들의 관심을 끌고 있다. 가까운 영장류 동물들과 인간이 차별화되는 부분 중 하나는 바로 발달 시기이다.[59] 다른 영장류 동물들의 뇌가 출산 전에 거의 완성되는 반면에, 인간의 뇌는 비교적 출산 후에도 계속 발달하는 편이다. 그래서 인간의 경우 뇌가 발달되는 중요한 시기 동안 세상 밖의 훨씬 더 복잡한 경험에 노출될 수 있다. 이러한 현상은 인간이 다른 동물들에 비하여 빠르게 변화하는 환경에 더 잘 적응할 수 있도록 만든다. 이러한 변화의 정도는 대뇌 피질 발달에 반영되기도 하고, 또한 두뇌의 자기조직화 시기에 자극적인 환경으로부터의 정보 추출에 변화를 준다. 물론, 이러한 유연성은 인간이 다른 동물들에 비해 긴 미성숙기(보호자에게 도움을 받고 훈련을 받아야 하는 의존적인 시기)를 가지게 된 원인이기도 하다. 딥 러닝의 이런 이론들은 결국 인간 진화의 기본적인 조건으로서 문화와 인식의 공진화를 보여준다.

영리 활동 [ 편집 ]

딥 러닝은 종종 강인공지능의 현실화를 향한 발걸음으로 묘사되기도 하기 때문에 많은 기관에서 딥 러닝의 활용에 관심을 보이고 있다. 2013년 3월, 제프리 힌튼과 두 명의 제자(Alex Krizhevsky and Ilya Sutskever)가 구글에 채용되었다. 이들은 구글의 기존 기계 학습 제품들을 향상시키고 구글이 가지고있는 데이터를 더 잘 활용할 수 있도록 돕는 일을 할 것이다. 구글은 또한 힌튼의 회사 DNNresearch를 인수하였다. 2013년 12월에는 페이스북이 캘리포니아, 런던, 뉴욕에서 운영될 인공지능 연구실의 수장으로 얀 르쿤을 채용했다고 발표하였다. 이 인공지능 연구실에서는 딥 러닝 기법들을 연구 하여 페이스북의 사진에 자동으로 사람의 이름을 연결시키는 등의 기능을 구현할 예정이다.[60] 2014년, 구글은 영국의 스타트업기업인 딥마인드 테크놀로지스를 인수하였다. 딥마인드에서는 화면의 정보만을 가지고 비디오 게임을 어떻게 플레이하는지를 스스로 학습하는 시스템을 개발하였다. 바이두는 앤드류 응을 그들의 새로운 실리콘밸리 딥 러닝 연구실의 수장으로 채용하였다.

부정적 시각과 코멘트 [ 편집 ]

딥 러닝에 대한 부정적 시각중 하나로 딥 러닝에 사용되는 방법들의 이론적인 뒷받침이 빈약하다는 것이 있다. 대부분의 딥 러닝 알고리즘은 경사 하강법에 기초를 두고 있다. 그런데 경사 하강법 자체는 이론적으로 이해가 잘 되었지만, 이와 함께 사용하는 다른 알고리즘은 이론적인 검증이 빈약하다. 그러한 알고리즘 중 하나인 contrastive divergence는 이 알고리즘이 실제로 정말 수렴하는지, 수렴한다면 얼마나 빠르게 수렴하는지에 대한 부분이 현재 분명하게 증명되지 않았다. 이와 같이, 딥 러닝에 사용되는 방법들은 이론적이기보다는 경험적으로 검증된 방법들을 사용하기 때문에 종종 블랙박스로 이해되기도 한다.

또다른 사람들은 보통 사람들이 딥 러닝을 모든 것을 해결해주는 솔루션으로 바라보는 것에 대해 딥 러닝은 유일한 솔루션이 아니고, 강한 인공 지능을 실현하는 데에 한 걸음 더 다가갈 수 있게 해주는 것으로 봐야한다고 주장한다. 딥 러닝을 모든 것을 해결해주는 솔루션으로 보기에는 기능적으로 여전히 부족한 점이 많기 때문이다. 심리학자인 게리 마커스는 다음과 같이 말했다.

“현실적으로, 딥 러닝은 지능형 기계를 구축하는 것의 일부분에 불과합니다. 딥 러닝에 쓰이는 테크닉들은 인과 관계를 나타내는 능력이 부족하고 논리적 추론을 하는 것에 확실한 방법을 가지고있지 않습니다. 그리고 이 방법들은 어떤 물체가 무엇인지, 용도가 무엇인지 등과 같은 추상적인 정보를 인식하는 데에 오랜 시간이 걸립니다. 왓슨과 같이 현재 가장 강력한 인공지능 시스템은 딥 러닝을 복잡한 여러 개의 테크닉 중 단지 한 부분을 위해 사용하고 있습니다.”[61]

딥 러닝 소프트웨어 라이브러리 [ 편집 ]

각주 [ 편집 ]

딥 러닝이란 무엇입니까?

딥 러닝으로 무엇을 달성합니까?

딥 러닝은 우리 일상 생활의 일부입니다. 예를 들어 페이스북에 사진을 업로드 할 때 딥 러닝은 친구에게 자동으로 태그를 지정하여 도움을 줍니다. Siri, Cortana 또는 Alexa와 같은 디지털 어시스턴트를 사용하는 경우 자연어 처리 및 음성 인식의 도움으로 그것들이 여러분에게 도움이 되도록 서비스합니다. Skype에서 해외 고객과 만날 때 실시간으로 번역을 해줍니다. 이메일 서비스 제공 업체는 사용자가 직접 처리하지 않아도 스팸을 인식합니다. 이런 실례는 많습니다.

Google과 같은 거대 기업은 수년간 딥 러닝을 활용해 왔으며 현재 차세대 솔루션을 제공하기 위해 노력하고 있습니다. 그들은 인간의 음성을 모방하고 음성 시스템에서 얻을 수 있는 자연스러운 소리를 생성할 수 있었습니다. Google 번역은 딥 러닝 및 이미지 인식을 사용하여 음성 번역 및 서면 언어에 대한 인식을 수행합니다. Google의 PlaNet은 사진이 촬영 된 위치를 알려줄 수 있으며 TensorFlow는 다양한 인공 지능(AI) 애플리케이션을 제작했습니다.

현재 다음의 다양한 산업에서는 기능의 핵심에 딥 러닝을 적용합니다:

항공 우주 및 방위

딥 러닝은 인공위성이 특정 물체나 관심 영역을 식별하고 그것을 군인에게 안전하거나 안전하지 않은 것으로 분류하는 데 광범위하게 활용됩니다.

의학 연구

의학 연구 분야는 딥 러닝을 광범위하게 사용합니다. 예를 들어 진행성 암 연구에서 딥 러닝을 사용하여 암세포의 존재를 자동으로 감지합니다. 고급 현미경은 UCLA에 소속된 사람들이 만들었으며 고급 데이터를 사용하여 암세포를 정확하게 식별하는 방법을 딥 러닝 애플리케이션에 가르칩니다. 딥 러닝의 범위는 궁극적으로 의료 연구가 개인의 게놈 구조에 맞는 맞춤형 의약품을 만들 수 있는 데까지 확대되었습니다.

산업 자동화

중장비 부문은 많은 안전 조치가 필요한 분야입니다. 딥 러닝은 중장비의 안전하지 않은 반경 내에 들어오는 사람이나 물체를 감지하여 이러한 환경에서 작업자 안전을 개선하는 데 도움이 됩니다.

챗봇 및 서비스 봇

딥 러닝은 고객과 상호 작용하는 모든 챗봇 및 서비스 봇을 구동하여 점점 더 복잡 해지는 음성 및 텍스트 기반 쿼리에 대한 지능적인 답변을 제공할 수 있도록합니다. 이것은 끊임없이 진화하고 있습니다.

이미지 채색

한때 수작업으로 오랜 시간 동안 수행되었던 작업을 이제는 컴퓨터에 맡길 수 있습니다. 흑백 이미지는 이미지의 내용을 컨텍스트에 배치하고 올바른 색상으로 정확하게 재현할 수 있는 딥 러닝 알고리즘을 사용하여 색상을 지정할 수 있습니다.

안면 인식

딥 러닝을 활용하는 이 기능은 다양한 보안 목적으로만 사용되는 것이 아니라 곧 매장에서 구매할 수 있게 될 것입니다. 안면 인식은 이미 공항에서 종이 없이 원활하게 체크인할 수 있도록 광범위하게 사용되고 있습니다. 딥 러닝은 한 단계 더 나아가 안면 인식이 사람이 헤어 스타일을 변경했거나 조명이 최적이 아닌 상황에서도 지불 수단이 되도록 할 것입니다.

딥 러닝은 어떻게 작동합니까?

컴퓨터가 딥 러닝을 사용하는 방법을 이해하기 위해 그들은 개를 식별하는 방법을 배우려는 유아와 유사한 과정을 사용합니다. 유아는 먼저 성인이 말한 것처럼 그림과 개라는 단어를 연관시키는 법을 배웁니다. 아이는 짖는 소리를 개와 연관시키기 위해 계속 움직입니다. 그런 다음 아이는 발음이 제대로 될 때까지 여러 가지 변형으로 단어를 말하기 시작합니다.

같은 방식으로 컴퓨터 프로그램은 계층 구조를 가지고 있으며 각 수준의 알고리즘은 입력에 변환 수준을 적용하고 (즉, 학습하는) 출력에 대한 참조로 통계 모델을 만듭니다. 필요한 정확도 수준에 도달할 때까지 다양한 반복(아이가 개를 인식하는 방법을 배우는 것과 마찬가지로)을 진행합니다. 데이터가 최종 수준에 도달하기 위해 거쳐야 하는 여러 계층 또는 기능 집합으로부터 ‘딥’ 러닝이라고 불리는 기술을 이끌어냅니다.

어린이 및 지도학습의 경우 모든 수준을 지도해야 하며 지침은 구체적이어야 합니다. 어린이의 경우 부모에 의존하고 ML의 경우 개를 식별하는 데이터 집합을 정의하는 프로그래머 또는 데이터 사이언티스트의 기술을 기반으로합니다. 딥 러닝의 경우 프로그램은 감독없이 더 빠르고 정확하게 기능 집합을 구축합니다.

아이가 개와 올바른 연관을 맺는 데는 몇 달이 걸립니다. 딥 러닝 알고리즘을 기반으로하는 컴퓨터 프로그램의 경우 수십 개의 이미지를 정확하게 스캔하고 그 안에서 개를 골라 내기 때문에 몇 분 만에 이 작업을 수행할 수 있습니다. 이러한 정확도 수준을 달성하고 지속적으로 유지하려면 딥 러닝 프로그램에 처리 능력은 물론 훈련을 위한 엄청난 양의 데이터가 필요합니다. 클라우드 컴퓨팅과 빅 데이터가 출현하기 전에는 프로그래머가 이 둘 모두에 쉽게 접근할 수 없었습니다.

이제 데이터를 충분히 사용할 수 있게 되면서 딥 러닝 프로그램은 자체 반복 기반 출력으로 복잡한 계층 적 모델을 생성할 수있는 능력을 갖게 되었습니다. 딥 러닝은 방대한 양의 비구조적 원시 데이터로부터 매우 정확한 예측 모델을 생성 할 수 있습니다. 앞으로는 인간과 기계가 생성하는 대부분의 데이터가 비구조적이며 인간이 아닌 딥 러닝이 이런 데이터를 가장 잘 처리하기 때문에 사물 인터넷 (IoT) 을 활성화하는 데 큰 역할을 할 것입니다.

강력한 딥 러닝 방법 생성

강력한 DL 모델을 만드는 방법에는 여러 가지가 있습니다.

학습률 감소

이것은 딥 러닝에서 가장 중요한 매개 변수가 될 수 있는 하이퍼 매개 변수입니다. 이런 변수는 요인이 변경될 때마다 추정된 오류 양에 대한 반응으로 모델이 자체적으로 변경되는 정도를 결정합니다. 학습률이 높으면 훈련 과정에 시스템의 불안정성은 커집니다. 너무 낮으면 훈련이 필요 시간보다 오래 걸릴 가능성이 높습니다. 학습률 감소를 정확하게 구성한다는 것은 학습률이 수행 능력을 향상시키는 동시에 소요되는 학습 시간을 줄이도록 적응한다는 것을 의미합니다.

전이 학습

이 프로세스는 모델이 이미 알고있는 지식에 대한 관련 작업에 대한 분석을 수행하도록 하는 것입니다. 기존 네트워크에는 분류되지 않은 새로운 데이터가 제공됩니다. 조정이 이루어지면 수행되는 새로운 작업이 더 나은 분류 능력으로 수행됩니다. 이 접근 방식을 사용하면 필요한 데이터 양이 줄어들어 컴퓨팅 시간도 단축됩니다.

상향식 트레이닝

이 접근 방식에서 개발자는 많은 양의 레이블된 데이터를 집계합니다. 그런 다음 네트워크 아키텍처가 구성되어 기능 및 모델을 학습할 수 있습니다. 이 접근 방식은 여러 출력이 필요할 수 있는 애플리케이션 뿐 아니라 새로운 애플리케이션을 만드는데도 효과적입니다. 그러나 방대한 양의 데이터가 필요하기 때문에 트레이닝에 소요되는 시간이 늘어남에 따라 덜 사용되는 접근 방식 중 하나입니다.

드롭 아웃 접근법

이 방법은 많은 수의 매개 변수를 고려하여 네트워크의 과적합 문제를 해결합니다. 과적합은 훈련 데이터에서 개발된 알고리즘이 실제 데이터에 맞지 않는 경우입니다. 드롭 아웃 접근 방식은 특히 음성 인식 및 문서 분류 뿐만 아니라 계산생물학 분야에서 지도 학습이 진행되는 한 신경망의 성능을 향상시키는 입증된 실적을 가지고 있습니다.

딥 러닝은 AI 및 ML 분야를 크게 향상시켰습니다. 모든 머신을 보다 쉽게 지원하고 이전에 사람만 수행할 수 있은 작업을 가능하게 하는 방식으로 작업을 분석하는 딥 러닝의 능력이 강점입니다. AI는 미래이며 딥 러닝의 도움으로 영화에서 보는 것들이 생활에서 현실로 될 수 있습니다.

딥러닝이란 무엇인가? (1) – 블로그

수아랩 리서치 블로그 두 번째 글의 주제는 ‘딥러닝이란 무엇인가?’ 입니다. 오늘날의 AI(인공지능)를 가능하게 하는 기술이 ‘딥러닝’이라고들 하는데, 왜 수아랩 리서치 블로그에서 ‘머신러닝’부터 언급하고 ‘딥러닝’은 뒷전에 뒀는지 의아한 분들이 많으실 것으로 생각합니다. 이 글을 통해 그 궁금증을 풀어드리고자 합니다. 전체 글을 두 개의 포스팅으로 구분하여 게시하였습니다.

서론

요즘에 딥러닝(Deep Learning)이란 단어가 여기저기에서 많이 들려옵니다. 머신러닝(machine learning)과 왠지 느낌은 비슷한데, ‘딥’하다는 수식어가 붙어서 뭔가 좀 더 심오해(?) 보이기도 합니다.

오늘날 딥러닝이라는 단어는 대부분 AI의 꼬리표처럼 등장하는 경우가 많습니다. 본래 딥러닝은 2016년 초까지는 아는 사람만 아는 단어였는데, 국내에서는 특히 2016년 3월 바둑 두는 기계인 ‘알파고(AlphaGo)’가 대한민국의 이세돌 9단을 바둑으로 압승하면서 널리 알려졌습니다. 세간에서는 AI의 괄목할 만한 발전을 보면서 딥러닝의 무궁무진한 가능성을 높게 보는 사람들이 늘어났고, 좀 더 상상력이 풍부하신 분들은 이를 보며 ‘인간이 기계 제국에 지배당할 날이 머지 않았다’는 우려까지 하시게 된 것 같습니다.

“딥러닝 썼더니 바둑도 잘 두던데? 우리 비즈니스에도 딥러닝 적용하면 전부 대체 가능하겠네!!”

이러한 변화의 길목에서, 필자는 개인적으로 ‘딥러닝 만능주의’가 생겨나고 있다는 느낌을 지울 수 없습니다. 실제로 적지 않은 국가 혹은 기업의 의사결정권자들이, 딥러닝의 성공적인 적용 사례만을 보고 (위와 같은 뉘앙스로 말씀하시면서) 호기롭게 딥러닝을 자신들의 비즈니스에도 적용해보자는 주장을 하시는 것을 심심치 않게 보고 들어 왔습니다. 그러나, 현재의 딥러닝에는 엄연한 약점이 존재하며, 아직까지는 특정 부류 업무의 자동화를 위한 하나의 도구로 보아야 합당합니다.

이번 글에서는 이러한 오해를 불식하고자, 딥러닝이란 기술이 본질적으로 무엇인지, 어떤 강점과 약점이 있는지, 어떠한 문제에 효과적으로 적용될 수 있는지 등을 중심으로 이야기해 보고자 합니다.

딥러닝 ⊂ 머신러닝

결론부터 얘기하자면, 딥러닝은 머신러닝의 세부 방법론들을 통칭하는 개념에 불과합니다. 즉, 이론적으로 딥러닝은 머신러닝의 ‘부분집합’이라고 할 수 있으며, 사실 기존 머신러닝 이론에서 크게 새로울 것이 없습니다.

보다 자세한 설명을 위해서는 좀 더 수학적인 설명이 필요한데, 이에 앞서 바로 이전 글에서 살펴본 머신러닝의 핵심 요소를 다시 한 번 나열해보도록 하겠습니다.

머신러닝의 핵심 요소

데이터

러닝 모델 (+러닝 알고리즘)

요인 추출

엄밀히 말하면 요인 추출(feature extraction)은 필수적인 것은 아니나, 머신러닝의 성패를 크게 좌우하는 것이라 핵심 요소 리스트 상에 추가해 보았습니다. 머신러닝을 위해서는 데이터와 러닝 모델이 필요하며, 성공적인 학습을 위해서는 우선 데이터를 면밀히 조사하고 그 특징을 파악한 뒤, 이에 가장 적합한 러닝 모델을 잘 골라야 하며, 원 데이터를 그대로 사용하는 것보다는 효과적인 요인을 새로 정의하여, 이를 추출한 뒤 러닝 모델에 입력해주는 것이 좋다고 하였죠.

퍼셉트론 – 선형 모델의 일반화

이전에 러닝 모델의 예시로 든, 가장 단순한 러닝 모델인 선형 모델(linear model)을 기억하시나요? 2개의 입력 변숫값으로 구성된 2차원 데이터 예시 \((x_1,x_2)\)를 받아들여 하나의 출력 변숫값 \(f(x_1,x_2)\)을 출력하는 다음과 같은 함수를 예로 들었습니다:

\begin{equation} f(x_1, x_2) = w_0 + w_1x_1 + w_2x_2 \end{equation}

저번 글에서의 ‘3개월 내 채무 이행 여부 예측 기계’ 예시에서는, 어느 특정한 예시 \((x_1,x_2)\)에 대하여, 학습된 러닝 모델의 출력값 \(f(x_1,x_2)\)가 0보다 크면 ‘O’로, 작으면 ‘X’로 분류했던 바 있습니다.

3개월 내 채무 이행 여부 예측 결과 예시

선형 모델을 매번 위와 같은 수식으로 표현하면 한 번에 알아보기 불편하므로, 아래와 같이 좀 더 예쁜 그림으로 대신 표현하도록 하겠습니다.

선형 모델의 도식화 예시

위 그림을 보시면, 기본 뼈대에 \(w_0, w_1, w_2\)가 있고, 여기에 \(1, x_1,x_2\)가 각각 곱해진 후, 이들을 모두 합산한(\(∑\) 결과를 그대로 출력하고 있습니다. 여기까지가 위에서 사용한 선형 모델인데, 일반적으로는 합산 결과에 활성함수(activation function)라는 모종의 함수 \(σ(⋅)\)를 적용한 결과를 최종 출력값으로 대신 출력하는 경우가 많습니다. 여기에, d개의 입력 변숫값으로 구성된 d차원 데이터 예시 \((x_1,x_2,…,x_d)\)를 받아들이는 상황을 가정하면 아래와 같은 일반화된 그림을 표현할 수 있습니다.

퍼셉트론

일관성을 위해, 기존에 \(w_0\)이 등장하는 항에 \(x_0=1\)이 곱해진다고 가정하면, 입력 벡터 \(x=(x_1,x_2,…,x_d)\)를 받아들인 뒤 각 성분에 가중치를 곱하고, 그 결과를 모두 합산한 후, 활성함수 \(σ(⋅)\)을 적용한다고 할 수 있습니다. 전체 과정을 수행하는 이 선형 모델을 하나의 함수 \(h(⋅)\)로 나타낼 수 있으며, 이를 퍼셉트론(perceptron)이라고 부릅니다. 이 때, \(x_0=1\)까지 포함된 \((d+1)\)차원 벡터를 받아들이므로 이를 편의 상 ‘\((d+1)\)차원 퍼셉트론’으로 부르겠습니다. 당연히, 활성함수로 항등함수 \(σ(s)=s\)를 사용할 경우 이것은 위에서 살펴본 선형 모델이 될 것입니다.

선형 모델은, 사실 퍼셉트론의 특수한 형태로 해석할 수 있습니다.

퍼셉트론의 모양을 가만히 살펴보면, 이는 신경계의 기본 단위인 뉴런(neuron)과 그 모양이 매우 흡사합니다. 뉴런은 주변으로부터 자극을 받아들이는 돌기가 여러 개 뻗어 있으며, 이러한 자극들이 중심부의 핵으로 모여든 후 처리되고, 그 결과물을 다른 하나의 돌기를 통해 다른 곳으로 전달하도록 구성되어 있습니다. 이러한 유사성 때문에, 퍼셉트론을 흔히 인공 뉴런(artificial neuron) 혹은 줄여서 뉴런이라고도 부릅니다.

뉴런의 구조

인공신경망 – 퍼셉트론의 조합 및 확장의 결과

신경계에서의 뉴런들은 그 수가 엄청나게 많으며, 서로간에 매우 복잡한 구조로 얽히고설켜 하나의 거대한 망을 구성하는데, 이를 신경망(neural network)이라고 합니다. 머신러닝 과학자들은 신경계의 이러한 신경망 구조에 착안하여, 퍼셉트론을 하나의 빌딩 블록(building block)이라고 생각하고, 여러 개의 퍼셉트론을 아래 예시와 같이 연결한 인공신경망(artificial neural network)을 고안하였습니다.

4개의 퍼셉트론 간의 2차원적 연결 예시

위 그림에서 입력 벡터 \(x=(x_1,x_2,…,x_d)\)가 각각 상단, 중단, 하단에 위치한, 서로 다른 (d+1)차원 퍼셉트론의 입력값으로 들어갑니다(이를 각각 초록색, 붉은색, 보라색으로 표현했습니다). 각각의 퍼셉트론에서 가중합 및 합성함수를 거친 3개의 출력값이 \(x_0=1\)과 함께 4차원 퍼셉트론으로 입력됩니다. 4차원 퍼셉트론에서도 최종적으로 가중합 및 합성함수를 거치고, 최종적으로 1개의 값을 출력합니다.

위와 같이 연결한 구조에서, 세 개의 층(layer)을 확인하실 수 있나요? 입력 벡터가 위치한 층을 첫 번째 층, 3개의 \((d+1)\)차원 퍼셉트론이 나란히 붙어 출력한 값들이 위치하는 두 번째 층, 1개의 4차원 퍼셉트론이 출력한 값이 위치하는 세 번째 층으로 보시면 됩니다. 층 사이의 퍼셉트론들은 낮은(앞쪽) 층의 벡터를 각각 입력으로 받아 출력값을 내뱉고, 이는 높은(뒷쪽) 층의 벡터로 위치하는 구조를 확인할 수 있습니다.

더 거대한 인공신경망 구조를 표현하기 위해, 지금부터는 하나의 퍼셉트론을 아래와 같이 좀 더 단순화시켜 표현해 보겠습니다. 그리고, 그림 상에서 입력값 또는 출력값을 나타내는 원형 부분을 노드(node)라고 표현할 것입니다.

단순화된 퍼셉트론 구조

그러면 총 3개의 층으로 구성되어 있으며, 첫 번째 층과 두 번째 층 사이에는 \((d+1)\)차원 퍼셉트론이 \(H\)개, 두 번째 층과 세 번째 층 사이에는 \((H+1)\)차원 퍼셉트론이 \(K\)개 있는 인공신경망을 아래와 같이 표현할 수 있습니다. 이 때, \(+1\)로 표시된 부분은 퍼셉트론이 위치하지 않으므로 주의하시길 바랍니다!

다층 퍼셉트론의 일반적 구조

입력 벡터가 자리잡는 층을 입력층(input layer), 최종 출력값이 자리잡는 층을 출력층(output layer), 입력층과 출력층 사이에 위치하는 모든 층을 은닉층(hidden layer)이라고 합니다. 그림으로 표현할 때는 3개의 층을 그리나, 실제 인공신경망의 층 개수를 셀 때 입력층은 생략하는 것을 주의해야 합니다. 따라서 위 구조에서는 ‘총 2개의 층이 존재한다’고 부릅니다. 퍼셉트론을 기본 빌딩 블록으로 하여, 이런 패턴에 따라 2차원적으로 연결되어 구성되는 인공신경망의 일종을 특별히 다층 퍼셉트론(MLP: multi-layer perceptron)이라고 합니다.

이런 입력층-은닉층-출력층의 경우, 다층 퍼셉트론뿐만 아니라, 좀 있다 설명할 다양한 인공신경망 구조에서 공통적으로 존재하는 층입니다. 은닉층의 개수가 많아질수록 인공신경망이 ‘깊어졌다(deep)’고 부르며, 이렇게 충분히 깊어진 인공신경망을 러닝 모델로 사용하는 머신러닝 패러다임을 바로 딥러닝(Deep Learning)이라고 합니다. 그리고, 딥러닝을 위해 사용하는 충분히 깊은 인공신경망을 심층 신경망(DNN: Deep neural network)이라고 통칭합니다.

‘그럼 은닉층 및 출력층이 몇 개 이상이 있어야 심층 신경망이냐?’는 의문이 생길 수 있는데, 일반적으로는 은닉층+출력층이 2개 이상이 되면 심층 신경망이라고 합니다. 예를 들어, 아래와 같이 8개 은닉층+출력층으로 구성된 다층 퍼셉트론은 심층 신경망입니다.

심층 신경망 예시

이제 여러분들은, 딥러닝은 머신러닝의 세부 방법론들에 불과하다는 말의 의미를 이해하셨을 것이라고 생각합니다. 머신러닝의 큰 틀은 그대로 가져가되, 러닝 모델로 ‘충분히 깊은’ 인공신경망을 사용하고, 이에 맞는 러닝 알고리즘을 사용하여 러닝 모델을 학습한 경우 ‘딥러닝을 했다’고 표현해도 크게 무리가 없습니다.

대표적인 딥러닝 모델

심층 신경망의 기본 단위는 퍼셉트론이라고 하였습니다. 바로 앞에서는 다층 퍼셉트론 구조를 소개하였는데, 복수 개의 퍼셉트론을 서로 어떻게 연결하느냐에 따라 그와는 다른 새로운 구조를 형성할수도 있습니다. 오늘날, 다루고자 하는 데이터의 속성에 따라 효과적으로 적용할 수 있는 특수한 구조의 심층 신경망이 여럿 발표되었는데, 그 중 현재 가장 많이 쓰는 것 3가지를 소개해 드리고자 합니다.

완전 연결 신경망

완전 연결 신경망(fully-connected neural network)은, 사실 앞서 소개했던 다층 퍼셉트론을 지칭하는 또 다른 용어입니다. 다만 여러 구조의 심층 신경망이 추가로 발표되면서 기존의 다층 퍼셉트론이라는 표현을 사용하기 다소 애매해졌고, 이에 따라 오늘날에는 완전 연결 신경망이라는 표현을 널리 사용하고 있습니다.

완전 연결 신경망은, 위의 다층 퍼셉트론의 일반적 구조에서와 같이 노드 간에 횡적/종적으로 2차원적 연결을 이룹니다. 이 때, 서로 같은 층에 위치한 노드 간에는 연결 관계가 존재하지 않으며, 바로 인접한 층에 위치한 노드들 간에만 연결 관계가 존재한다는 것이 핵심적인 특징입니다.

컨볼루션 신경망

완전 연결 신경망에서 하나의 층 내부만을 보면, 그 안에 위치한 노드들은 1차원적으로 세로 방향으로만 배치되어 있습니다. 만약 완전 연결 신경망의 하나의 층에 위치한 노드들이 2차원적으로 가로/세로 방향으로 동시에 배치되어 있다면 어떤 모습일까요? 각 층에 가로 w개, 세로 h개의 노드가 배치되어 있는 2층짜리 완전 연결 신경망을 생각해 봅시다.

2차원적 완전 연결 신경망*

(*주의: 지면 관계상, 노드 간의 연결 관계에 대한 표현 및 +1 노드는 생략하였습니다.)

위 그림과 같이 노드를 배치할 경우, 노드 간의 연결 개수가 막대하게 증가한다는 문제가 있습니다. 예를 들어, 아래 그림과 같이 입력층의 \(x_{11}\) 노드에서 은닉층으로 이어지는 연결만 보더라도, 연결 하나 당 한 개의 가중치 값이 붙으므로 총 \(h×w\)개의 가중치를 고려해야 합니다. 입력층에는 총 \(h×w\)개의 노드가 존재하므로, 인접한 두 층 사이에만 총 \(h^{2}w^{2}\)개의 가중치가 필요합니다.

2차원적 완전 연결 신경망에서 노드 하나에서 출발한 연결

연결 개수의 증가에 따라 가중치의 개수가 기하급수적으로 증가한다는 문제 때문에, 머신러닝 연구자들은 인접한 층 간의 모든 노드의 연결을 고려하는 대신, 크기가 작은 필터(filter)가 존재한다고 가정하고 아래 그림과 같이 필터가 겹쳐지는 부분에 대해서만 가중합 및 활성함수 연산을 하도록 하였습니다.

컨볼루션 신경망에서의 필터에 대한 연산

하나의 필터는 그 크기만큼의 개수에 해당하는 가중치를 가지고 있으며, 이미지 상의 어느 특정한 특징을 요인으로 추출하여 출력할 수 있도록 가중치의 학습이 이루어집니다. 위 그림에서는 \(3×3\) 크기의 필터가 입력층의 가장 좌측 상단 \(3×3\) 영역에 적용되어, 이들 노드에 대한 가중합 및 활성함수 연산을 수행하고 그 출력값을 \(z_{22}\)에 저장하고 있습니다. 이렇게 필터는 원본 입력층 상에서 일정 간격만큼 횡적/종적으로 이동하면서 가중합 및 활성함수 연산을 수행하고, 그 출력값을 현재 필터의 위치에 놓습니다. 이러한 연산 방식은 컴퓨터 비전(computer vision) 분야에서 이미지에 대한 컨볼루션(convolution) 연산과 유사하여, 이러한 구조를 채택하는 심층 신경망을 특별히 컨볼루션 신경망(CNN: convolutional neural network)이라고 부르게 되었습니다. 컨볼루션 연산 결과 생성되는 은닉층을 특별히 컨볼루션 층(convolutional layer)이라고 부르며, 복수 개의 컨볼루션 층이 존재하는 신경망을 심층 컨볼루션 신경망(DCNN: Deep convolutional neural network)이라고 부릅니다.

이렇게 컨볼루션 층에서는 현재 필터가 위치한 노드에서, 그 필터가 커버하고 있는, 물리적으로 가까운 곳에 위치한 노드만을 포괄하여 가중합을 계산하는데, 이는 가중치의 개수를 줄여주는 것 외의 또 다른 장점을 제공합니다. 하나의 필터로 하여금 국부(local) 영역에 대한 특징에 집중할 수 있도록 한다는 점이 그것입니다. 이러한 특성 때문에, 컨볼루션 필터는 2차원 영역 상의 물리적 거리가 중요한 판단 기준이 되는 이미지 등의 데이터에 대하여 효과적으로 적용될 수 있습니다.

이미지에 대한 컨볼루션 필터의 국부 영역 특징에 대한 집중

예를 들어, ‘이미지 상의 특정 영역 상에서의 수직 방향 경계 존재 가능성’이라는 요인을 추출하는 \(5×5\) 크기의 필터가 있다고 합시다. 이 필터가 현재 이미지 상의 \((23,35)\) 위치에 있을 경우, \((21,33)\)에서 \((25,37)\) 사이에 있는 정사각형 영역 상에 위치한 픽셀(pixel)들의 값만을 참조합니다. 뜬금없이(?) 현재 위치에서 물리적으로 멀리 떨어져 있는, 이를테면, \((86,79)\)에 위치한 픽셀의 값을 조사하지 않는다는 것이죠.

지금까지 서술한 내용에서는, 설명의 편의를 위해 하나의 필터만이 작동하는 것을 표현하였으나, 실제로는 컨볼루션 층 직전에 복수 개의 필터를 설치하고 각 필터의 컨볼루션 연산을 통해 복수 개의 출력 결과물이 생성되도록 합니다.

컨볼루션 신경망의 최초 모델: LeNet

컨볼루션 신경망은, 본래 2차원적 속성을 지니는 데이터에 효과적으로 적용할 수 있습니다. 위에서 보인 바와 같이, 이미지 데이터가 가장 대표적인 사례라고 할 수 있습니다. 실제로도 이미지 인식(image recognition) 분야에서 컨볼루션 신경망이 가장 활발하게 사용됩니다.

(컨볼루션 신경망에 대한 보다 자세한 내용은, 추후에 또 다른 블로그 포스팅을 통해 다루도록 하겠습니다.)

순환 신경망

우리가 다루는 입력 데이터 중에서는, 특별히 선후 관계가 중요하게 취급되는 것들이 있습니다. DNA 염기 서열과 같은 것들이 대표적입니다. 하나의 예시의 길이가 가변적이며, 서두에 어떤 염기가 등장했는지에 따라 나중에 등장할 염기가 무엇이 될지 결정됩니다. 이와 같은 형태의 데이터를 시퀀스(sequence)라고 부릅니다.

DNA 시퀀스

이러한 시퀀스 데이터의 길이 가변성과 선후 관계를 러닝 모델로 하여금 어떻게 학습할 수 있도록 할지에 대하여 머신러닝 과학자들은 고민을 지속해 왔습니다. 그러던 중, 아래의 두 가지 아이디어를 반영하여 새로운 구조의 완전 연결 신경망을 만들었습니다.

데이터 시퀀스 상의 원소를 매 시점(timestep)마다 하나씩 입력한다. 특정 시점에 나온 은닉층의 출력 벡터(이하 은닉 벡터)를, 시퀀스 상의 바로 다음 원소와 함께 입력한다.

순환 루프가 존재하는 완전 연결 신경망 구조

데이터 시퀀스 상의 어느 시점 t의 원소 \((x_1^{(t)}, x_2^{(t)}, …, x_d^{(t)})\)를 완전 연결 신경망에 입력하는 과정에서, 바로 이전 시점 t−1의 은닉 벡터 \((z_1^{(t-1)}, z_2^{(t-1)}, …, z_H^{(t-1)})\)을 함께 입력하여 가중합 및 활성함수를 적용하는 구조입니다. 이렇게 은닉 벡터를 그 다음 시점으로 전달하는 이유는, 앞선 시점들에서의 입력 벡터 속 정보들이 현재 시점의 은닉 벡터에 누적되어 있다고 간주하기 때문입니다. 이러한 구조의 신경망을 순환 신경망(RNN: recurrent neural network)이라고 합니다. 순환 신경망은 실제 데이터 시퀀스에 대하여, 아래 그림과 같이 시점 순서대로 작동하게 됩니다.

d차원 입력 벡터 시퀀스에 대한 순환 신경망의 작동 방식

위 그림을 보면, 시점 1에서의 입력 벡터 \((x_1^{(1)}, x_2^{(1)}, …, x_d^{(1)})\)가 순환 신경망에 입력되었을 때의 은닉 벡터 \((z_1^{(1)}, z_2^{(1)}, …, z_H^{(1)})\)가 시점 2의 입력 벡터 \((x_1^{(2)}, x_2^{(2)}, …, x_d^{(2)})\)와 함께 입력되어 가중합 및 활성 함수를 통해 은닉층의 벡터 \((z_1^{(2)}, z_2^{(2)}, …, z_H^{(2)})\)를 결정합니다. 이러한 과정은 시점 2, 시점 3에서도 이어지며, 시점 T를 마지막으로 종료됩니다.

그리고 당연하게도, 순환 신경망 내에 복수 개의 은닉층을 배치할 경우, 이를 심층 순환 신경망(DRNN: Deep recurrent neural network)이라고 부릅니다.

이렇게, 순환 신경망은 태생적으로 시퀀스 데이터에 대하여 잘 작동하도록 설계되어 있습니다. 오늘날 순환 신경망은 자연어 처리(natural language processing) 분야에서 특히 많이 적용되고 있습니다. 사람들이 사용하는 언어를 텍스트 시퀀스 형태의 데이터로 변환하였을 때, 이 또한 길이 가변성과 선후 관계의 특징을 지니기 때문입니다.

(순환 신경망에 대한 보다 자세한 내용은, 추후에 또 다른 블로그 포스팅을 통해 다루도록 하겠습니다.)

(다음 포스팅 보기)

딥러닝이란? | 작동 방식 및 기술 응용 분야

딥러닝 예제

딥러닝 응용 프로그램은 자율주행에서 의료기기에 이르기까지 여러 산업 분야에서 사용되고 있습니다.

자율 주행: 자동차 연구소에서는 정지 신호, 신호등과 같은 물체를 자동으로 탐지하는 데 딥러닝을 사용하고 있습니다. 또한 딥러닝은 보행자를 탐지하는 데도 사용되어 사고를 줄이는 데 기여하고 있습니다.

항공 우주 및 국방: 딥러닝은 위성에서 객체를 식별하여 관심 영역을 찾고 병력을 파견하기에 안전하거나 안전하지 않은 지역을 확인하는 데 사용됩니다.

의학 연구: 암 연구진은 암 세포를 자동으로 탐지하는 데 딥러닝을 사용하고 있습니다. UCLA 연구 팀은 딥러닝 애플리케이션에 암 세포를 정확히 식별하는 법을 학습하는 데 사용될 고차원 데이터 세트를 생성하는 첨단 현미경을 개발했습니다.

산업 자동화: 사람이나 물체가 기계와 안전 거리를 유지하지 않을 때 딥러닝이 이를 자동으로 탐지하여 중장비를 다루는 작업자를 더 안전하게 보호할 수 있습니다.

전자: 자동 청취 및 음성 번역에 딥러닝이 사용되고 있습니다. 예를 들어 사용자의 음성에 응답하고 사용자의 기호를 파악하는 가전 기기는 딥러닝 애플리케이션을 기반으로 합니다.

딥 러닝이 무엇인지 알고 계시나요?

딥 러닝과 신경망의 차이점은 무엇입니까?

딥 러닝과 신경망 비교

간단히 말해서 딥 러닝은 여러 계층이 있는 신경망의 이름입니다.

신경망은 사진 또는 오디오와 같은 관찰 데이터를 이해하기 위해 상호 연결된 노드 계층을 통해 데이터를 전달합니다. 정보가 계층을 통과하면 해당 계층의 각 노드는 데이터에 대해 간단한 작업을 수행하고 결과를 선택적으로 다른 노드에 전달합니다. 각 후속 계층은 네트워크에서 출력을 만들 때까지 마지막 계층보다 더 높은 수준의 기능에 중점을 둡니다.

입력 계층과 출력 계층 사이에 숨겨진 계층이 있습니다. 이 계층이 바로 신경망과 딥 러닝의 차이점입니다. 기본 신경망에는 숨겨진 계층이 한 개 또는 두 개 있는 반면, 딥 러닝 네트워크에는 수십 또는 수백 개의 계층이 있을 수 있습니다. 서로 다른 계층과 노드의 수를 늘리면 네트워크의 정확성이 향상될 수 있습니다. 그러나 계층이 많을수록 모델에 매개 변수와 컴퓨팅 리소스가 더 많이 필요할 수도 있습니다.

딥 러닝은 원시 데이터를 수신하는 일련의 입력이 있는 신경망 계층을 통해 정보를 분류합니다. 예를 들어 신경망이 새 이미지를 통해 학습한 경우 새 이미지를 인식하는 데 사용할 수 있습니다. 까마귀와 닭을 구별하는 것보다 까마귀와 큰까마귀를 구별하는 것과 같이 계층이 더 많을수록 더 정확한 결과를 얻을 수 있습니다. 딥 러닝 알고리즘 뒤에 있는 심층 신경망에는 입력 및 출력 노드 사이에 숨겨진 여러 계층이 있으며, 이는 더 복잡한 데이터 분류를 수행할 수 있음을 의미합니다. 딥 러닝 알고리즘은 대규모 데이터 집합을 통해 학습되어야 하며 더 많은 데이터를 수신할수록 더욱 정확해집니다. 새 사진을 정확하게 분류하려면 새 사진을 수천 장 제공해야 합니다.

신경망에서는 딥 러닝 모델을 학습시키는 데 리소스가 매우 많이 사용됩니다. 이는 신경망이 학습 도중에 조정된 가중치(입력 간의 연결 강도를 나타내는 매개 변수)를 사용하여 숨겨진 계층에서 처리되는 입력을 수집한 후 모델이 예측을 시작하는 때입니다. 가중치는 보다 나은 예측을 위해 학습 입력을 기반으로 조정됩니다. 딥 러닝 모델은 많은 양의 데이터를 학습하는 데 시간이 많이 소요되므로 고성능 컴퓨팅이 매우 중요합니다.

GPU는 데이터 계산에 최적화되어 있으며 대규모 행렬 계산의 성능을 가속화하도록 설계되었습니다. GPU는 대규모 머신 러닝(ML) 및 딥 러닝 문제에 대한 병렬 실행에 가장 적합합니다. 따라서 이미지, 텍스트, 비디오와 같은 대량의 구조적 또는 비구조적 데이터에서 많은 계산을 수행하는 ML 애플리케이션은 우수한 성능을 발휘합니다.

키워드에 대한 정보 deep learning이란

다음은 Bing에서 deep learning이란 주제에 대한 검색 결과입니다. 필요한 경우 더 읽을 수 있습니다.

이 기사는 인터넷의 다양한 출처에서 편집되었습니다. 이 기사가 유용했기를 바랍니다. 이 기사가 유용하다고 생각되면 공유하십시오. 매우 감사합니다!

사람들이 주제에 대해 자주 검색하는 키워드 [TMook] 딥러닝이란 1편 Deep-Learning

  • 교육
  • 딥러닝
  • 인공지능
  • 머신러닝
  • 인공신경망
  • 신경망
  • Deeplearning
  • AI
[TMook] #딥러닝이란 #1편 #Deep-Learning


YouTube에서 deep learning이란 주제의 다른 동영상 보기

주제에 대한 기사를 시청해 주셔서 감사합니다 [TMook] 딥러닝이란 1편 Deep-Learning | deep learning이란, 이 기사가 유용하다고 생각되면 공유하십시오, 매우 감사합니다.

See also  5평 오피스텔 인테리어 | 좁은 5평 원룸 꾸미는 방법!🏠💙남자 자취방 인테리어 집꾸미기 House Room Tour 모든 답변

Leave a Reply

Your email address will not be published. Required fields are marked *