달력

42024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

인간의 지능적인 특성 중에는 학습이 있습니다. 학습은 배워서 익히는 것입니다. 그럼 어떻게 배울까요? 우리는 경험을 통해 배웁니다. 그래서 우리는 여러 경험을 통해 학습을 얻어내고 그 학습은 다음 행동에 영향을 주도록 변화해왔습니다. 이렇게 우리가 학습하는 특성을 컴퓨터인 기계에 접목한 것이 머신 러닝이고, 딥 러닝입니다.
전통적인 프로그램 방식에서는 프로그래머인 사람이 일일 명시적으로 알고리즘을 설계하고, 코딩해서 컴퓨터가 주어진 입력에 대한 출력을 갖도록 해왔습니다. 그러나 인공지능 기법이 도입되면, 컴퓨터인 기계는 주어진 입력 데이터와 출력 데이터로(혹은 입력 데이터로만) 기계가 자동적으로 명시적인 프로그래밍 없이 학습하여 그 결과 규칙을 적용하게 됩니다. 아래 그림을 보면 쉽게 이해될 것 입니다.

전통적인 프로그램 방식과 인공 지능 방식의 차이

약간 머신 러닝 개념이 너무 복잡한 것 같아서 간단한 요리로 설명하겠습니다. 요즘 뜨고 있는 백선생 조리법(recipe)처럼 『라면을 맛있게 끓이는 요리 기계』를 만든다고 생각해봅시다. 전통적인 방식으로는 요리 기계에 조리법에 대한 프로그램을 입력합니다. 그 프로그램에는 가장 맛있다고 결론 지어진 조리법의 최종 규칙을 입력되어있습니다.  

  • IF (물의 양 = “550 ml” and 끓이는 총 시간 = “4분 30초” and 면 크기 =“부수지 말고 그대로 최대 크기” and 플레이크(후레이크 표기는 잘못. flake)와 분말 스프 투입시기 = “면보다 먼저” and 취향 = “대파 투입” and/or “달걀 투입(풀어서)”)
  • Then (조리법 = “백선생의 맛있는 라면요리“). 

이제 이 규칙을 기계에 넣어주고, 우리는  백선생의 맛있는 라면요리“를 끓여주라고 하면 기계는 상기 규칙대로 끓여서 나올 것 입니다. 이것은 구체적인 정답에 해당하는 규칙이 있어야만 결과적인 맛있는 라면요리가 완성되는 방식입니다.

그러나 상기 IF절에 있는 (물의 양, 끓이는 시간, 면 크기, 스프 투입시기, 취향)을 어떻게 해야 할지 모른다고 가정할 때, 우리는 가르쳐 주는 사람이 없다면, 내 스스로의 경험을 통해서 맛있는 조리법을 터득할 수밖에 없습니다. 끓이는 시간은 얼마로 해야 면이 꼬들꼬들 해질까, 물이 많으면 싱겁고, 물이 적으면 짜고, 면을 잘라서 넣을까 말까, 플레이크와 분말 스프는 언제 넣을까, 달걀은 반숙할 것인가, 풀어서 먹을 것인가, 대파를 넣을 것인가 말 것인가 등을 시행착오하면서 경험이 쌓게 됩니다. 그리고 다음번에는 그 경험을 바탕으로 개선을 해나갑니다. 계속해서 매일매일 끊이다 보면, 결국은 어떻게 하는 것이 가장 좋은 맛을 내는지에 대한 결론이 나오고, 이를 기계에 저장하여 나만의 조리법이 나오게 만들 수가 있습니다. , 경험이 학습되어 그 결과를 맛있는 라면요리 조리법라는 규칙으로 저장해놓는 것입니다. 이렇게 학습을 통해 규칙을 생성해서 기계가 스스로 조리법을 갖게 하는 방식이 바로 머신러닝 / 딥 러닝에 의한 인공지능 방식인 것입니다. 이 방식으로 하면 개인별 취향이 다르다고 해도, 개인별 조리 데이터를 학습시켜 맞춤형으로도 제공할 수 있습니다. 좀더 확장이 유연해진겁니다.

이렇게 인공 지능 방식은 경험, 성능, 작업 목표를 기계 스스로가 데이터를 통해 발전해나가는 방식입니다.

Copyright 2021. 『오드리공주될뻔 블로거  All rights reserved.

Posted by 오드리공주될뻔
|

인공지능에 관한 용어들은 일반인들에게 생소한 경우가 많고 혼동하기 쉽기 때문에 기본적인 차이점을 이해하면 관련내용을 이해하는데 도움이 됩니다. 인공지능분야에서 가장 많이 쓰는 용어는 인공지능, 머신러닝, 인공신경망, 딥 러닝입니다. 이들의 관계는 한마디로 부분 집합과 합집합의 개념으로 쉽게 이해할 수 있습니다.

인공지능 ⊃ 머신 러닝(기계 학습) ⊃ 인공 신경망 ⊃ 딥 러닝(심층 학습)

최근에 많이 활용되는 딥 러닝 안에는 CNN, RNN 등의 여러 가지 형태의 알고리즘이 있습니다. 머신러닝은 기계 학습(機械學習)으로 표기하기도 하고, 영어로는 machine learning약어로는 ML)이라고 표기합니다. 딥 러닝은 심층 학습(深層學習)으로 표기하기도 하고, 영어로는 「deep structured learning」, 「deep learning」 또는 「hierarchical learning」이라고도 합니다. 인공신경망(人工神經網)은 영어로는 artificial neural network(약어로는 ANN)」 이라고 합니다.이를 도식화하여 나타내면 아래 그림으로도 표현할 수 있습니다.

인공지능, 머신 러닝(기계 학습), 인공 신경망, 딥 러닝(심층 학습) 용어의 구분

각각의 개념을 한마디로 요약해서 설명하면, 머신 러닝은 경험을 통해 자동으로 개선하는(혹은 학습하는) 컴퓨터 알고리즘의 연구 분야입니다. 기본적인 규칙만 주어진 상태에서 입력받은 정보를 활용해 스스로 학습하는 것입니다. 머신 러닝의 한 분야인 인공 신경망은 생물학의 신경망(특히 뇌)에서 영감을 얻어 입력과 출력 사이에 있는 인공 뉴런들을 여러 개 층층이 쌓고 연결한 학습 알고리즘입니다.

인공 신경망은 노드들의 그룹으로 연결되어 있으며 이들은 뇌의 방대한 뉴런의 네트워크와 유사하다. 위 그림에서 각 원모양의 노드는 인공 뉴런을 나타내고 화살표는 하나의 뉴런의 출력에서 다른 하나의 뉴런으로의 입력을 나타낸다. [출처 : 한국어 위키백과]

딥 러닝은 인공 신경망을 여러 계층으로 사용하여(그래서 Deep) 원시 입력에서 더 높은 수준의 특징을 점진적으로 추출하는 일종의 인공 신경망 학습 알고리즘입니다딥 러닝을 설명하다보면, 어디까지가 Deep이고, 어디까지가 Shallow이냐는 질문을 많이 받습니다. 여기에 대한 가장 근거 있는 정답은 아래의 deep learning에 관한 영어 위키백과를 참조해야합니다. (애석하게도, 2021년 1월 기준 ‘딥 러닝의 한국어 위키백과에서는 해당내용이 아직 기술되어있지 않습니다.)
The word "deep" in "deep learning" refers to the number of layers through which the data is transformed. More precisely, deep learning systems have a substantial credit assignment path (CAP) depth. The CAP is the chain of transformations from input to output. CAPs describe potentially causal connections between input and output. For a feedforward neural network, the depth of the CAPs is that of the network and is the number of hidden layers plus one (as the output layer is also parameterized). For recurrent neural networks, in which a signal may propagate through a layer more than once, the CAP depth is potentially unlimited. No universally agreed-upon threshold of depth divides shallow learning from deep learning, but most researchers agree that deep learning involves CAP depth higher than 2. CAP of depth 2 has been shown to be a universal approximator in the sense that it can emulate any function. Beyond that, more layers do not add to the function approximator ability of the network. Deep models (CAP > 2) are able to extract better features than shallow models and hence, extra layers help in learning the features effectively.” [출처 : deep learning 영어 위키백과]

상기 영문내용에 있듯이, deep을 정확히 이해하려면 CAP(credit assignment path, 입력에서 출력으로의 변환 체인. 머신 러닝의 일종인 강화학습에서의 credit assignment problem은 과거에 있었던 일들 중에서 현재 내가 받은 reward에 기여한 것을 할당하는 문제임)의 개념을 이해해야하고, 간단히 말하면, 인공신경망(Artificial Neural Network, ANN)을 구성할 때 입력 층(input layer)과 출력 층(output layer) 사이에 여러 개의 은닉 층(hidden layer)들로 이뤄진 형태로 구성하는 데, 여기서 출력 층을 포함한 은닉 층의 수가 CAP 값입니다. 즉, 노드간의 연결이 순환하지 않는 순방향 신경망(順方向神經網, feedforward neural network)과 같은 구조에서 통상의 CAP 값은 은닉 층+1의 값입니다. 따라서 딥(Deep)이란 통상 CAP > 2이상의 값, 즉 은닉 층이 2개 이상인 경우를 말하는 것입니다. 많은 분들이 Deep을 구분하는 은닉 층(Hidden Layer) 수가 1개 이하면 Shallow, 2개 이상이면 Deep라고 하는 것이 여기서 기인한 것이라 볼 수 있습니다.

Love 1
 Love 2

이제는 사랑도 인공 신경망으로 자동판별될 수 있습니다.

Copyright 2021. 『오드리공주될뻔 블로거  All rights reserved.

Posted by 오드리공주될뻔
|