-18일차- 딥러닝과 신경망
23년 이전 글/모두의연구소 아이펠

-18일차- 딥러닝과 신경망

딥러닝

딥러닝은 머신러닝의 범주에 포함되는 기술로서 단순히 뉴럴 네트워크의 형태를 닮아 있다라고 표현하는 부분이 많다

딥러닝이 나타난 배경을 살펴보면 "합성된 함수를 학습시켜서 풍부하면서도 유용한 '내재적 표현'을 찾아내는 machine

을 구축하는 것이라는 의견도 있다

 

내재적 표현이란?

저 꽃속에 숨어있는 강아지와 같다

위 이미지는 이미 그림으로 표현되어 있는 데이터인데 꽃이나 개는 자신만의 분자형태로 구성이 되어있기도 하고,

만약 feature를 뽑아낸다면 해당 데이터를 통해서 tabular 형태의 데이터로도 볼 수 있다

여기에서 최초 분자형태의 데이터라면 사람의 손길이 닿지 않은 Raw data가 되겠지만

feature를 뽑아내거나 tabular 데이터 형태로 만드는 등의 편집을 통해서 사람이 원하는 방향의 데이터로 바뀌어 간다

(신문이나 글이 편집을 거쳐서 주관적인 성향을 띄듯이, 데이터 또한 그렇게 변할 수 있다는게 있는 부분으로 보인다)

 

위 그림을 단순한 숫자표현의 나열로 본다면 강아지를 발견하기 어려울 것이다.

즉 데이터로부터 표현을 추출한다는 것은 저 꽃들사이에 강아지를 찾아내는 것과 같다고 볼 수 있고

이는 넘파이로 변환된 숫자의 집합에서 강아지를 표시하는 벡터를 추출하는 것과 같은 것이다

딥러닝이 이러한 일을 잘 수행하도록 학습을 시켜나가야 하며, 이때 필요한 것이 Gradient Descent이다

 

딥러닝을 관통하는 철학 중 하나 행동주의

행동주의는 모든 생명체의 지능은 반복되는 자극에 따라 형성된다고 주장한 내용이고 이를 실험한 재밌는 영상이 있다

 

이렇게 생명체가 외부에서 받는 자극으로 학습되는 과정을 조작적 조건화라고 일컫는다고 한다

생명체가 자신에게 유리한 결과를 가져다주는 행동을 알게 되고, 그 행동의 빈도를 높인다는 '강화이론'은

강화학습의 근간이 되는 이론이기도 하다는 것

 

딥러닝을 관통하는 철학 중 둘 인지주의

인간이 지각 과정에서 받아들인 정보가 학습, 기억, 주의 등의 처리과정을 통해 어떻게 심리적으로 가공되고 행동으로 표출되는지를 연구하는 분야로, 행동주의에 대한 비판과 함께 등장함

행동주의는 외부의 자극에 의해 학습되고 행동을 하게 되는 것인데, 이건 인간이 학습된 행동외에 다양한 생각과 상상을 할 수 있다는 점을 설명하지 못함

 

딥러닝을 관통하는 철학 중 셋 연결주의

인공 신경망을 사용하여 마음 현상 또는 심리적 기제를 과학적 절차에서 보다 구체적으로 구현하는 인지 과학 분야의 접근법

연결주의의 지능체는 처음에는 백지 상태이나, 다수의 사례를 경험함으로써 천천히 학습해 나간다고 함

즉 학습된 내용은 연결된 뉴런 자체에 저장되어 있으며, 외부에서 자극을 받음에 따라 연결 형태가 바뀌면서 학습된 내용이 바뀌어 간다고 함

딥러닝이 따르는 것은 바로 연결주의

 

함수

수학과 프로그래밍에서의 함수의 본질은 같다

이를 선형대수의 관점에서 본다면 x의 공간에서 y의 공간으로 매핑해주는 도구로 볼 수 있다

One to One은 x와 y가 모두 스칼라인 경우, 하나의 값을 입력하면 하나의 값만 나온다

이를 좀더 발전시키면 Many to One의 형태가 되는데 이는 벡터 X를 받아 스칼라 y로 출력한다

입력 데이터가 몇개인지 상관없이 단 하나의 연속된 실수 스칼라 값으로 맞추는 문제를 회귀문제라고 함

주어지는 형태에 따라서 단변량 회귀, 또는 다변량 회귀가 된다

Many to Many는 입력과 출력값 모두 벡터의 형태를 띄는 경우다

보통 분류 문제에 활용이 되고, 이때 합하면 1이 되도록 정규화하고 확률값처럼 예측을 한다

 

모델

머신러닝과 딥러닝에서 풀게될 문제는 완벽한 함수를 찾는 수학문제를 푸는 것이 아닌, 잘 근사할 수 있는

함수에 가까워지도록 시도하는 것에 가깝다. 이를 위한 시도로써 해야할 일이 있다

간단한 정형데이터의 경우 선형함수를 사용하지만 비정형 데이터의 경우 필연적으로 신경망을 사용해야한다

이는 신경망의 계층구조가 데이터 표현을 단계별로 잘 추출해낸다는 것이 증명되었기 때문이다

어떤 데이터에 대해 특정 형태의 모델(함수)가 유리할 것이라 생각하고 공간을 정하는 것을 Inductive Bias, Prior을 가정한다고 말한다

이게 중요한 이유는 우리가 학습시킬 모델이 세상 모든 데이터를 볼 수 없기 때문이고, 설령 볼 수 있다하더라도 그걸 계산할 컴퓨팅 능력이 뒷받침 되어야 하지만 둘다 어렵다

따라서 모델이 일반화가 잘 되려면 일반적인 패턴을 반영할 수 있어야하고, 이에 알맞은 형태의 모델을 선택하는 것은

데이터에 대한 도메인 지식을 가진 사람의 몫이며, 이에 따라 Inductive Bias 설정이 중요해진다

해당 모델을 정했다면, 그 공간안에서 최적의 함수를 찾아나간다(학습과 파라미터 조정을 통해)

 

머신러닝과 딥러닝

기존의 전통적인 머신러닝에서는 Input -> Feature Extraction -> Model -> Output의 단계를 거쳤다면

최근의 딥러닝에서는 Input -> Feature Extraction,Model -> Output의 단계를 거친다

즉 복잡한 Feature추출까지 모델이 도맡아서 하게된다

 

오늘의 주요 질문들

머신러닝 과정에 빗대어 설명하는 아이의 학습 과정은?

나무라는 사물에 대해서 배울 때 나무의 예시를 통해 점차 나무라는 사물의 종류에 대해 확대해 나가면서 다시 핵심이 되는 특징을 압축해 나간다

선형 모델은?

직선의 형태로 정의되는 러닝 모델을 선형 모델이라고 한다. 가장 단순

오늘날 이미지 인식분야에서 선형 모델을 쓰지 않는 이유는, 대안은?

선형모델은 빠르고 인간이 이해하기 쉽지만 데이터가 수많은 픽셀로 이뤄진 이미지의 복잡성을 선형 모델에 충분히 반영하는 것이 불가능했다. 이에 복잡성이 높은 러닝 모델로서 딥러닝을 활용한다

퍼셉트론이란?

입력 벡터를 받아 가중치를 곱하는 선형모델을 거쳐 이를 모두 합산한 뒤 활성화 함수를 적용하는 전체 과정을 수행하는 하나의 함수로 볼 수 있으며, 이를 퍼셉트론이라 한다

다층 퍼셉트론이란?

말그대로 다층의 퍼셉트론이 존재하는 구조에 대해 말한다 퍼셉트론은 input layer, hidden layer, output layer로 구성되는데 이를 2차원적으로 연결해서 구성하는 것

심층 신경망이란?

다층 퍼셉트론 은닉층 개수가 많아질수록 인공신경망이 깊어졌다고 볼 수 있으며 충분히 깊어진 모델에 대해 딥러닝이라고 부른다

대표적인 딥러닝 모델 세가지?

완전 연결 신경망, 컨볼루션 신경망, 순환 신경망

CNN은 이미지, RNN은 주로 자연어처리

딥러닝의 강점?

딥러닝은 Feature representation learning 능력을 가지고 있어 원본 데이터로부터 최적의 성능을 발휘하는데 사용되는 표현 방법을 스스로 학습하고 최적의 성능을 발휘하는 가중치를 효과적으로 찾는 능력

컨볼루션 신경망의 낮은층(입력층 쪽)과 높은층(출력층 쪽)은 어떤 특징을 추출하는지?

낮을수록 명암, 색상 변화등의 저수준 특징을 포착하고 높을수록 서로 가까운 것들이 조합되고 넓은 영역에서 고수준의 특징에 대해 표현을 포착하는 경향이 있음 (낮은곳 -> 점,선,면등의 간단요소, 높은곳 -> 복잡하고 추상요인 추출)

딥러닝의 약점?

굉장히 많은 데이터가 필요하며 학습에 연산량이 높아 학습 시간이 오래걸린다

 

딥러닝은 블랙박스일까?

블랙박스의 의미는 안에서 무슨일이 일어나는지 모른다는 의미로 현재까지도 블랙박스인지 아닌지에 대한 여부는 논쟁중에 있다

찬성

신경망은 여러 함수를 엮은 것이고 본질은 회귀식의 형태와 같다. 그리고 어떻게 연산되고 어떤 원리로 동작하는지 알기 때문에 블랙박스라고 할 수 없다

반대

계산 과정을 전체적으로 이해하는 것은 불가능하고, 어떤 결과를 내놓을지 예측할 수 없으며, 판단 근거 또한 설명이 불가하다

딥러닝의 기술도 중요하지만 적용되는 기술에 따라서 왜 그런 결과를 내놓았는지 설명할 수 있어야 하는 경우가 많다

사람도 주장에 따른 납득할만한 근거가 있어야 신뢰할 수 있기 때문

 

Lime

머신러닝 모델에 대한 해석을 해주는 라이브러리

입력값을 조금 바꿨을 때 모델의 예측값이 크게 바뀌면 그 변수는 중요한 변수로 생각하는 것

이미지에 비교하자면 이미지를 조각내어 그 부분이 바뀌었을 때 출력값이 크게 바뀌는 여부를 따져서 모델의 중요한 변수를 찾아낸다

 

오늘은 코드 없이 이론적인 내용 위주였지만 오히려 이런 시간 덕분에 왜 딥러닝을 해야하는지,

내가 어떤 역할을 해주어야 할지에 대한 생각이 깊어지는 시간을 가질 수 있었다

딥러닝의 대한 기술이 깊어지려면 사고의 깊이도 같이 깊어가야 균형적인 모델을 만들 수 있을 것으로 보인다

반응형