반응형

머신러닝을 포괄적으로 이해하자면 어떤 입력을 넣어 어떤 출력값이 나오는 모델을 만들껀데, 이 과정중 학습이라는 행위를 통해서 예측값을 더 정확하게 하는 과정이라고 보면 됐었다.

오늘 배울 것은 선형 회귀 모델로써 우리가 처음 배우기에는 가장 이해하기 쉬운 학습모델이다. 무작정 퍼셉트론을 이용해 인공신경망을 이해하려는것 보다. 가장 간단한 형태의 학습모델을 이해하고 차근차근 딥러닝 모델을 이해하도록 해보자.

선형 회귀 (Linear Regression)

선형함수의 기울기와 절편을 찾는 과정

선형 회귀. 딱 들었을때 아.. 수학이구나 하고 엄청 어렵겠다고 생각하는 사람이 꽤 있을것이다. 나도 어..머..딥러닝이 어려운거니까 분명 어렵겠지? 라는 선입견으로 한번 쭉~ 공부해봤는데 고등교육 수준선에서 충분히 이해할 수 있는 내용이다.

자 머..책이던 뭐 블로그던 선형회귀를 설명하면 보통은 선형회귀가 뭔지부터 설명한다. 그렇게 되면 처음 공부하는 사람으로써는 글로만보니 읽어도 감이 빠르게 오지 않는다. 그래서 감을 먼저 얻고 선형회귀를 이해하기 위해 아래 예시로든 사진을 살펴보자.

자 가로축은 입력 X다. 세로축은 입력 Y다. 와우 짱쉽다. 2차원 그래프다. 방정식을 중학교때 배웠으니 크게 어렵지 않을꺼다. 그래프를 보면 입력에 따라서 출력이 어떻게 분포되어있는지 확인할 수 있다. 그래프를 해석해보자면 입력 X가 작을수록 Y의 값도 작고, 입력 X가 커지면 출력 Y도 따라 커지는 것을 볼 수 있다. 이정도 해석을 내리는 것은 어렵지 않을 것이다. 벌써 선형 회귀를 한 20% 이해한 것이다.

모델

예측값 Y를 찾아낼 수 있는 규칙

대충 딱 보고 아 우상향으로 점들이 집중해 있으니 사진에 보이는 굵은 실선(1번 선)처럼 점집합들의 대략 중앙을 지나는 선을 그으면 어느정도 예측가능하겠군!! 우리가 딱보고 찾은 규칙은 대략 y=x라는 것이다. 눈으로 찾은것이기 때문에 정확하게 계산하면 오차는 있겠지만 머 대충 입력에 7이 들어오면 출력이 7언저리가 나오겠네 예측이 가능하다. 저 빨간 실선이 바로 모델이고 우린 두눈으로 한눈에 최적의 모델을 찾아버린 것이다.

자 우리는 규칙을 찾았다. 인간의 뇌는 참 대단하다. 머릿속으로 복잡한 사고판단도 없이 딱 그래프 1초 보고 규칙을 찾아낼 수 있다. 중요한건 우리가 찾았다는 것이다. 우리가 찾은건 아무 소용이 없다. 머신러닝은 기계 즉 컴퓨터가 저 규칙을 찾게하는 것이다. 그럼 어떻게 찾아야할까? 어떻게는 나중에 생각하고 일단 우리가 뭘 해야하는 지는 알아냈다. 바로 저 점 밀집들의 거의 중앙을 지나가는 최적의 선을 찾는것!

선형 (Linear)의 의미

규칙이 선형인 1차원 방정식으로 표현 됨

$y=ax+b$y=ax+b

위에서 말한 내용을 보면 선형 회귀의 목표는 저 빨간 1번 선을 찾는 거라고 했다. 2차원 그래프에서 저 빨간 선을 표현하는 수식은 y=ax+b 이다. 이건 진짜 중1때 배웠다. a는 기울기고 b는 절편이다. 즉 기울기 a와 절편 b를 찾는게 이 모델의 목표인거고, 선형회귀라는 이름에서 선형은 2차원 그래프로 표현할 수 있는 입력x와 출력y와의 관계에서 1차원 방적식을 표현한 직선이 선형으로 이루어져 있다는 것이다.

이제 선형 회귀중 선형의 의미를 알아냈고, 이 선형회귀 모델에서 무엇을 해야하는지 알아냈으니(선형 그래프 기울기a와 절편b를 찾아야함!) 이제 아까 잠시 킵해뒀던 '어떻게'에 대해서 생각해보자. 이 어떻게를 이해하면 이제 회귀라는말이 왜 쓰였는지도 이해가 갈 것이다.

경사하강법 (Gradient Descent)

기울기를 조절하여 모델을 최적화 하는 알고리즘

한가지 아이디어가 있다! 컴퓨터한테 대략 아무 선(랜덤)이나 하나 딱! 그어놓고 가령 예를들어 1번 점선처럼 말이다. 그리고 천천히 기울기a 와 절편 b를 조절하여 3번 실선을 찾는것이다!

엥? 뭐야 장난치냐! 이게뭔 머신러닝이야! 할 수도 있는데.. 그만큼 쉬운 머신러닝 모델이다. 사실 따지고보면 아까 우리가 1초만에 눈으로 규칙을 찾았듯이 눈으로 보니까 쉽지. 실제로 코드를 입혀서, 저 수치들을 조절하고, 최적의 직선을 찾는 과정을 보면 그리 쉽지는 않다.

자 눈으로도 보이듯이 경사가 점점 내려가면서 점점점~ 점들의 집합을 관통하는 직선으로 이동하게 된다. 이게 바로 경사 하강법! 짝짝짝

회귀 (Regression) 의 의미

자 우리가 아는 회귀의 의미가 뭘까? 다시 돌아오다. 머 이정도로 알고있을 것이다. 혹시 평균으로 부터의 회귀라는 말도 들어보았는가? 평균으로 돌아가려는 성질인데 쉽게 말하면 이런거다. 주사위를 3번 던졌다 6이 2번 나왔고 세번째 던질 차례인데, 6이 많이 나왔다고 3번째에 6이 나올 확률이 줄어들까? 아니다. 매 순간마다 확률은 평균으로 돌아간다.

이해가 안간다면 두번째 예시도 있다. 키작은 부모들의 자식들은 평균적으로 키가 작고 키큰 부모의 자식들은 평균적으로 키가 크다. 만약 평균으로 회귀가 일어나지 않는다면 키큰 부모들 밑에서 태어난 자식들은 한없이 키가 커지고, 반대로 키작은 부모 밑에서 태어난 자식들은 한없이 키가 작아진다. 이렇게 되면 결국 세대를 거듭할수록 인간들은 엄청 큰사람들과 엄청 작은사람들로 나뉘어 질텐데 실제로는 그렇지가 않다.

왜냐면 자연에서는 이런 특성이 평균으로 돌아가고 있기 때문이다. 집단이 클수록, 세대를 거듭할수록 이런 특성들은 평균으로 돌아간다. 그래서 우리의 키는 비슷한 것이다.

이제 회귀의 의미를 알았을까? 즉 자연의 모든 특성들은 평균으로 회귀하는 특성을 가지고 있기 때문에, 우리가 모점들을 최적으로 지나는 직선을 찾아내면 이 평균으로 회귀하려는 특성을 이용해, 입력 X를 넣으면 Y를 예측 할 수있는 것이다. 왜냐면 모든 특성은 평균으로 회귀하는 특성을 가지고 있으니까!!

대충 선형그래프만 하나 구해서 입력으로 떤지면 인간들의 평균키가 유지되듯이 대충은 그 직선과 비슷하게 결과가 나온다는 것!

여기까지 우리는 선형 + 회귀에 대한 의미를 이해했다. 이제 실습을 통해서 어떻게 이런 모델을 코드로 만들 수 있는지 직접 만들어보자! 원래 한포스팅에 다 쓸려고 했는데.. 벌써 새벽2시라서 내일 써야겠다..

반응형
반응형

딥러닝 예제를 하나씩 만들어보기 전에 개발환경을 구축해야한다. 대수학 코딩이 강력한 파이썬으로 진행을 할껀데 사실 개발환경이랄 것도 없다. 워낙 세상이 좋아져서.. 구글에서 파이썬 개발환경을 클라우드로 사용할 수 있다.

Google Colab

 

코랩이란 무엇인가. 파이썬 코드를 웹 환경에서 작성하고 실행시킬 수 있는 툴이라고 생각하면 된다. 번거롭게 IDE를 설치하는 과정이 없어도 된다. 무엇보다 딥러닝을 하려면 대수 연산이 필수적인데, 구글 클라우드 환경 위에서 돌아간 후 결과만 화면으로 리턴받는 형식이기 때문에 컴퓨터 사양이 녹록지 않은 사람들한테는 개인 컴퓨터에 연산 부하를 주지 않음으로 굉장히 좋은 서비스라고 할 수 있다.

특히 외장 그래픽카드가 달려있지 않은 사용자에게는 부동소수점 연산에 취약할 수있는데 클라우드 환경에서 GPU연산까지 해주기 때문에 이보다 더 좋은 개발환경이 있을까 싶다.

무엇보다 작성했던 코드들이 내 구글 드라이브에 저장할 수가 있어 웹환경만 있으면(인터넷만 되면) 어디서든 딥러닝을 학습할 수 있다. 특히.. 직장인이신 분은 회사에서 짬내서 할 수 있다는 장점이 있다. ㅎㅎ

1. 코랩 접속

http://colab.research.google.com

 

Google Colaboratory

 

colab.research.google.com

위 사이트에 접속해보자

별거 없다 구글 계정만 있으면 바로 사용이 가능하다. 내 노트북을 만들어보자. 여기서 말하는 노트북은.. 우리가 아는 컴퓨터 노트북이 아닌.. ㄹㅇ 공부할 때 사용하는 노트 + 북 이다.. 프로그래머 입장에서 보면 프로젝트 폴더를 만든다고 하는게 더 이해하기 쉬울 것 같다.

2. 노트북 생성

위 순서대로 눌러주면 새 노트가 생성된다.

3. 코드 작성

 

새 노트를 만들면 상단에 파일명을 더블클릭해서 수정해주고, 아래 코드 작성하는 곳에 아무 코드나 작성해보자.

print("아무말이나 작성")

4. 코드 실행 (Ctrl + Enter)

해당 코드칸을 누르고 Ctrl+Enter 혹은 좌측에 실행버튼을 누르면 실행 결과가 나타난다.

5. 노트북 저장

저장은 별거 없다 그냥 상단에 파일 누르고 드라이브에 저장 누르면 된다. 머 깃헙에 저장할 사람은 밑에 따로 하면된다.

 

여기까지 간단하게 코랩에서 노트북을 생성, 코드 작성, 실행, 저장 까지 진행해봤다. 앞으로 실습은 이 환경에서 진행 할 예정이다.

#딥러닝 #구글 #코랩 #google #colaboratory #파이썬 #클라우드 #가상 #개발환경 #설정

반응형
반응형

오늘은 신경망 알고리즘에서 가장 많이 등장하고 기초적인 개념이 되는 퍼셉트론(Perceptron)에 대해서 알아보자. 일단 퍼셉트론이 뭔지 자세히 알아보기 전에 어떤 부분에서 퍼셉트론이라는 개념이 쓰이는지 간단하게 보고 넘어가자.

퍼셉트론(Perceptron)은 인공신경망(ANN)을 구성한다.

저번에 우리가 인공신경망이 무엇인지 알아보았다. 간단하게 요약하자면 인공신경망은, 인간의 신경세포 뉴런이 자극을 전달하는 일련의 과정들을 모방해 만든 인공적인 모델이라고 했다. 신경자극 전달을 몸에서는 뉴런(Neuron)이라는 신경세포가 했듯이, 인공신경망에서도 인공뉴런이 있다고 했다. 그 인공 뉴런이 바로 퍼셉트론이다.

위에 인공신경망 예시사진을 첨부했는데, 저기서 구성하는 원들이 퍼셉트론이라고 생각하면 된다.

뉴런(Neuron)과 퍼셉트론(Perceptron)의 차이점

퍼센트론 = 뉴런

그럼 인간 몸의 신경망을 구성하는 뉴런과, 인공신경망을 구성하는 인공뉴런의 차이가 뭘까? 일단 헷갈리지 않기 위해 공통점을 집고 넘어가자. 둘 모두, 여러 자극(Input)을 받아들이고 다음 뉴런으로 자극을 전달한다. 사실 역할이나 구조가 동일하다. 따라서 뉴런 = 퍼셉트론으로 이해해도 괜찮다.

하지만 인공 뉴런이아닌 퍼셉트론으로 이름을 붙인 이유가 있을것이다. 뉴런은 인간 몸에서 자극을 전달하는 생물학적, 화학적인 개념이고, 퍼셉트론은 이 과정을 수학적으로 모델링한 개념이다. 음.. 이해가 좀 안가려나..? 그러니까 뉴런은 실제 우리 몸에있는 말랑말랑하고, 사람이 인공적으로 만들 수 없는 그 생물학적 뉴런 그 자체고, 이걸 인공적으로 만들기위해 수학적인 개념을 동원하여 뉴런처럼 동작할 수 있게 구현해 놓은 '수학적인 모델'이 바로 퍼셉트론이다!!

퍼셉트론(Perceptron)의 기본 동작 원리

위에서 말했듯기 생물학적인 뉴런의 작동방식을 인공적으로 만들어낸게 바로 퍼셉트론이라고 했다. 인공 뉴런이라고 부르지않고 수학적인 개념이기 때문에 퍼셉트론이라는 다른 이름으로 불린다고도 했다.

저번 포스팅을 보면 뉴런이 어떻게 동작하는지 알아봤다. 기억이 안난다면 이전 포스팅을 참조하기 바란다. 생물학적인 뉴런의 동작방식을 간단하게 살펴보자면, 여러개의 가지돌기들에서 자극(Input)을 받아들이고 그 가지돌기들 중 중요한 신호를 받아들이는 가지돌기들은 가중치가 높은 가지돌기들이라고 했다. 그리고 그 자극들의 총합이 해당 뉴런의 활성화 함수 임계치를 넘게되면 뉴런이 활성화되어 촉색돌기로 신호를 뱉어 다음 뉴런으로 자극을 전달한다고 했다.

그럼 퍼셉트론도 이런 구조로 되어있는지 위 사진을 보며 비교해보자. 자극이 들어오면 퍼셉트론의 앞단에서 각 가중치에 맞게 입력을 받아들인다. 받아들여진 가중치가 곱해진 입력들의 합은 활성화함수(임계함수)를 통과해 해당 퍼셉트론을 활성화할지 말지 정해준다. 만약 입력의 총합이 해당 퍼셉트론의 활성화함수 임계치를 넘으면 출력을 1로 뱉어 다음 퍼셉트론으로 자극을 전달한다. 반대로 임계치를 넘지 못하면 출력은 활성화되지 않는다.

예시를 들어보자. 자 입력에 10, 23, 7의 자극이 들어왔다. 각 가지돌기의 중요도에따라서 1번 가지돌기는 가중치가 1로써 그렇게 중요하지않은 가지돌기 같다. 두번째 가지돌기는 가중치가 55로써 세 가지돌기들 중 가장 높은 가중치를 가지고 있는것으로보아 가장 중요한 신호를 받아들이는 가지돌기로 판단된다. 마지막 세 번째 가지돌기는 가중치가 17이다.

자. 첫번째 가지돌기에 10이란 입력신호가 들어왔고 가중치가 1이니 총합이 10이다, 두 번째 가지돌기도 같은방식으로 23x55를 하면 1265라는 수치가 나온다. 세번째 가지돌기도 같은방식으로 7x17을 하면 119라는 값이 나온다. 그럼 이 세 가지돌기에서 가중치를 고려해 모든 자극의 합을 보면 10+1265+119 = 1394라는 값이 나온다. 해당 퍼셉트론이 입력을 통해 받아들인 가중치를 고려한 입력들의 합은 총 1394라는 것이다. 저기서 활성화 함수를 보면 조건이 IF = 만일 / SUM<1300 = 총합이 1300보다 크면이라는 조건이 있다. 현재 총합이 1394이기 때문에 해당 조건을 만족하니 출력이 Activate 되는 것이다.

엥? 엄청 간단하잖아? ..!!? 맞다. 왜 수학적으로 모델링 가능한지 감이 왔을것이다. 단순히 입력값들에 가중치를 곱해주고, 그걸 다합쳐서 활성화 함수를 만족하면 활성화시키고 아니면 활성화시키지 않고, 단순하다. 나중에 배우겠지만 어려운건, 이걸 어떻게 학습하는 퍼셉트론으로 만들꺼냐인데 이건 나중에 아주 천천히~ 배워보자.

더 구체적인 퍼셉트론(Perceptron)

위 퍼셉트론 구조에서 새로운 개념이 추가됐다. 가운데 보면 편향(bias)라는 개념이 추가됐다. 편향은 뭘까? 해석하자면 해당 퍼셉트론(뉴런)이 얼마나 쉽게 활성화 되는지를 조절하는 조절하는 매개변수정도로 생각하면 된다.

엥?? '얼마나 쉽게 활성화 되는지?' 이게 뭔말이야! 라고 생각하는 사람을 위해서 간단한 설명을 더 해보겠다. 일단 활성화 함수의 임계치가 1300이니, 자극의 총합이 1300이 넘어야 뉴런이 활성화 된다. 여기서 편향이 1이라고 하면 이 뉴런이 받아들인 자극들은 입력 1~3에서 들어온 값에 가중치가 곱해진 합이니, 즉 입력에 의존하게 된다. 쉽게말하면 입력의 강도들이 적으면 당연히 총합도 줄어드니 1300에 도달하기 힘들것이다.

하지만 편향이 500이라고 가정해보자. 그럼 입력 1,2,3이 모두 0이 들어와도 편향이 500이니 입력값 총합 0 + 500 해서 아무것도 안했는데 입력의 총합이 500이 되버리는 것이다. 뭐 극단적인 예시긴 한데ㅋㅋㅋㅋ 일단 공짜로 500먹고 시작하니 입력값에 의한 의존도가 상대적으로 줄어드는 것이다.

더 강한 예시를 들자면 편향이 1200이라고하자, 그럼 입력1~3이 각 가중치가 곱해진 총합이 100만 넘으면 뉴런이 활성화 되는 것이다. 그럼 처음에 말했듯이 아주쉽게 뉴런이 활성화 되는것으로 해석할 수 있다. 편향이 1일때는 입력값과 가중치 이것저것 다 곱해서 또 다더한후 1300이란 값을 만들어야 활성화 됐는데 편향이 높으면 대충 해서 입력들x각 가중치 해서 100만 만들면 편향이 1200이니 쉽게 활성화 되는것이다. 이제 좀 이해가 됐을 것이다.

편향 b(bias)의 의미

= 퍼셉트론이 얼마나 쉽게 활성화 되는지의 정도

편향이 있는 이유는 해석하자면 얼마자 쉽게 활성화 되는지를 조절한다고 하지만, 이것은 오차를 고려한 것이다. 입력 강도를 매개변수(입력들)들과 가중치를 합한것으로만 다루면 좋지만, 매개변수에서 예상하지 못한 잡음(노이즈)을 제거하기 위한 이유도 있다. 예를들어 입력을 받아들이는데 노이즈가 생겨 30정도의 값들은 아무것도 안했는데도 들어온다면 편향에 30을 주어 그 노이즈로 들어온 30을 무시해주면 되는것이다.

이것을 수학적으로 표현하자면 저 편향은 선형그래프에서 y절편이 된다.

활성화 함수(Activation Function)은 무엇일까?

스탭 함수 / 시그모이드 함수 / 랠루 함수

  자 퍼셉트론이 여러가지 입력을 받아들인뒤 가중치를 곱해 합쳐진 값이 활성화함수(Activation Function)을 지나 출력을 줄지 말지 정한다고 했다. 풀어서 이야기하자면, 활성화 할지는 1이고 말지는 0이다. 그렇다 어떤 값이 들어오던 결과로 1(활성화) or 0(비활성화) 이렇게 두가지로만 나오면 된다. 그 역할을 해주는게 바로 활성화 함수다.

그래프들을 보면 모두 y축 출력값이 0~1인 것을 알 수 있다. 그래프가 여러가지가 있는데 첫 번째 스탭 함수를 보면 출력이 0과 1밖에 없다. 이게 방금말한 활성화 할지, 말지 딱 두 종류만 반환해주는 함수다.

다음 시그모이드 함수를 보면 0~1사이에 실수의 값들이 채워져있다. 예를들면 0.45 , 0.77 등, 이경우는 활성화 됐다, 안됐다가 아닌, 활성화 정도를 반환해주낟. 1에 가까우면 많이 활성화 됐다는 것이고 0.2 이렇게 반환되면 적게 활성화 된거고, 연속적인 성격을 뛴다.

마지막 렐루함수는 0이하일때는 0 그 이상일때는 입력그대로가 나온다. 요즘에는 이 함수를 활성화 함수로 많이 쓴다고 한다. 0 밑으로는 무조건 다 비활성화를 시키고, 0 이상은 입력 그대로가 출력으로 작동해 값이 크면 클수록 활성화가 강력히 되는 친구다.

뭐, 복잡해보이지만 활성화 함수는 입력으로 어떤 숫자가 오던 출력으로는 0과 1사이의 값만 반환하는 것이다. 이 활성화 함수가 있기떄문에 인간의 뉴런이 활성화 될 때를 구현할 수 있는 것이다. 여기서 알아야할 것은, 이 활성화 함수를 통해서 복잡한 입력값들의 합이 간단하게 0~1사이로 아주 간단하게 바꿔준다는 것. 이것만 알고가자.

퍼셉트론(Perceptron)을 수식으로 표현해보자!

자 우리가 지금까지 봤던 저 퍼셉트론을 수학적으로 표현해보자. 복잡해보이지만 우린 충분한 설명을 거쳤기 때문에 식을보면 이해가 갈 것이다.

후... 수식 입력하는 사이트에서 손수 입력해서 왔다. 여기서 딱보고 앗.. 시그마는 그래도 고딩떄 본거 같은데 그래도 익숙하지가 않네..? 하시는분들 계실꺼다. 나도 너무 오랫만에 수식을봐서 적응이 안됐었다. 먼저 좌변부터 보면 y가 아닌 y위에 ^ 표시가 있는 y-hat으로 표현해놨다. 딥러닝 분야에서는 예측값이라는 의미로 y와는 구분된 y-hat으로 표기한다고 한다. 앞으로 y-hat이 나오면 예측값 정도로 해석하면 된다.

이제 가장 중요한 우변을 보자 일단 바로 b가 보인다. b는 편향이라고 했다. 퍼셉트론이 활성화되는 정도를 의미한다고 했는데 가장 맨 앞에 씌인 이유는 간단하다. 만약.. 시그마식 뒤에 b가 왔으면 시그마 식에 포함되어 있다고 착각하시는 분들이 많아, 그런 오해를 없애기 위해 맨 앞에 뒀다. 자 여기까진 어렵지 않을 것이다.

뒤에 시그마 식을보자. 자 n이 입력의 갯수고 입력이 1부터 n까지 들어왔다. 들어온 입력이 x1부터 xn까지다. 위에 사진을 보듯이 가지돌기 부분에 중요한 순서대로 가중치 W가 있다고 했다. 그 가중치들이 바로 Wn인거다. 보면 1번 입력 x1은 해당 가중치인 W1과 곱해질꺼고, x2는 W2와 곱해질꺼고 ...해서 xn은 Wn과 곱해질꺼다. 그리고 이 모든걸 합쳐준다. 이렇게 하면 우리가 위에서부터 계속 공부한 퍼셉트론 모델이 완성되는것이다.

이 시그마에서 합쳐진 자극신호들의 합과 편향까지 합치면 y-hat 즉 예측값이 나올꺼고 이걸 활성화 함수에 넣으면 출력이 0~1이 나오게 된다.

여기까지 퍼셉트론에 대해서 알아보았다. 후... 2일간 쓴 글이라 어꺠가 너무 아프다 ㅠㅠ

[딥러닝] #5 퍼셉트론(Perceptron)에 대해서 알아보자 / 인공신경망(ANN) 퍼셉트론과 뉴런의 차이점 / 편향 b(bias)의 의미

#딥러닝 #퍼셉트론 #인공신경망 #뉴런 #차이 #편향 #활성화함수 #기본 #기초 #원리

반응형
  1. 김민지 2022.04.26 10:40

    와 너무 자세한데요? 안그래도 인공신경망은 뭔지 퍼셉트론은 뭔지 둘 차이가 뭔지 헷갈렸는데
    자세하게 알게됐어요 감사합니다!!!

  2. 박선영 2022.05.04 13:57

    if sum<1300이라는 게 입력값 * 가중치가 1300보다 작다면 활성화, 크다면 비활성화 아닌가요? 제가 잘못 이해하는 건지 궁금하네요.

반응형

저번시간까지 인공지능, 머신러닝에 대해서 알아보았고, 오늘은 간단하게 딥러닝이 무엇인지 알아보자.

딥러닝(Deep Learning)

= 인공신경망을 사용하는 머신러닝 방식

딥러닝을 간단하게 요약하자면 인공신경망을 사용하는 머신러닝 방식이다. 딥러닝이라는 개념을 몰라서 찾아봤더니 더 어려운 개념으로 딥러닝을 설명하네.. 할 수도 있겠지만 차근차근 알아가보자. 일단 큰 틀만 잡자면 딥러닝은 인공신경망이라는 개념을 사용한다!! 딱 이것만 기억하자.

신경망(Neural Network)

일단 인공신경망을 알아보기전에 더 간단한 개념인 신경망이라는 개념을 집고 넘어가자. 모두들 신경망이라는 단어는 어디서 배우지 않아도 필수 어휘로 알고 있을 것이다. 신경망, 위 사진처럼, 우리 몸안에서 자극들을 받아들이고, 내가 몸을 움직이고 싶으면 움직이라는 신호를 전달해주고, 그런 통로역할을 하는 것이 신경망이다. 고등학교때 중추신경계, 자율신경계, 말초신경계 등등 거기서 배우던게 우리가 알고 있는 그 신경망이라는 개념과 동일하다. 여기까지는 아마 이해하는데 큰 어려움이 없을 것이다. 그럼 이 신경망은 어떻게 동작하는 것 일까?

뉴런(Neuron)

=신경망의 동작 원리

 

자 신경망이 동작하는 상황을 좀 구체적으로 풀어보자. 예를들어, 우리가 뜨거운 물건에 손을 댔을때 순간적으로 손을 떼게된다. 느리게 살펴보면 손을 댄순간 통각이라는 자극신호가 신경망을 통해 뇌까지 갔다가, 뇌에서는 손을 당장 떼!!! 라는 명령을 손에 내린다. 이 명령 신호는 다시 신경망을 통해 손까지 돌아가게 된다.

살짝 느리게 관찰해 봤는데, 이런 자극신호들이 신경망을 통해서 오고가는것은 이제 알겠다. 하지만 우리가 진짜로 궁금해해야하는 것은 신경망이 어떻게 자극을 전달하는지 궁금해 해야한다. 바로 위 사진에 나와있는 뉴런이라는 신경세포가 자극을 전달한다.

뉴런(Neuron)의 동작 원리

뉴런이 어떻게 동작하는지 알아보기 전에 뉴런의 구조부터 익혀야한다. 저 빨간 박스에 그려진 친구가 하나의 뉴런이다. 뉴런은 여러개의 가지돌기들과 한개의 촉색돌기로 이루어져 있다. 이 모습을 눈에 익혀놔야한다.

자. 이제 뉴런이 어떻게 동작하는지 알아보자. 먼저 가지돌기들이 자극을 받아들인다. 그림엔 3개 밖에 안그려놨지만 가지돌기는 여러개가 있기 때문에 n개가 있다고 하겠다. 저 가지 돌기들은 각각의 고유 가중치들이 있다. 저 가중치가 의미하는 것은 어떤 자극을 받아들이는데 있어서 가장 중요한 가지돌기라는 것이다.

 

즉, 가지돌기1처럼 가중치가 1인 친구는 상대적으로 낮기때문에 해당 자극을 받아들이는데 있어서 큰 역할을 하는 돌기는 아니기때문에 아주 큰 영향이 안가지만, 가지돌기 2처럼 55의 가중치는 주변 가지돌기들보다 아주 큰 가중치이기 때문에 작극을 받아들이는데 있어서 아주 큰 영향을 주는 가지돌기들이라는 것이다.

가중치가 높은 가지돌기가 중요한 신호

일단 여러개의 가지돌기들이 자극을 받아들인다고 했다. 그리고 이 종합적으로 받아들인 결과값들을 다 더한 값이 이 뉴런이 생각하는 특정 임계치 이상이면 뉴런이 활성화되고, 그렇지 않으면 활성화 되지 않는다.

여기서 활성화라는 것은 뭘까? 활성화는 Activation 됐다고 하며, 뉴런 꼬리에 해당하는 촉색돌기에 다음 뉴런으로 전달하라는 신호를 주는 것을 뜻한다. 촉색돌기에 신호가 들어오면 촉색돌기 말단에서 시냅스를통해 다음 뉴런으로 신호가 전잘된다. 이렇게 뉴런에서 다음 뉴런, 그 뉴런에서 그 다음뉴런, 뉴런에서 뉴런~~~~~~뉴런~~~~쭈구우우욱~ 어마무시한 뉴런들을 거쳐 비로소 뇌까지 도달하게 되는 것이다.

뉴런(Neuron)의 임계치(Threshold)

자 다시 뒤로 돌아가서 임계치(Threshold)라는게 뭘까? 뉴런의 구조를 보면 특이한점이 있다. 자극을 받아들이는 가지돌기들은 여러개인데 최종적으로 다음 뉴런으로 신호를 전달하기 위한 돌기는 하나다. 맞다. 뉴런은 자극들을 받아들여 종합한후 자기가 뒤로 자극을 전달해야하는지 말지를 판단해서 신호를 전달하는 것이다.

그래서 위에서말한 자극을 뒤로 전달해야할지 말지가 바로 임계치다. 예를들어 3개의 자극 10, 23, 7이 들어왔다고 보자, 각 가지돌기들의 가중치(중요한 신호라고 생각하는 정도)를 입력 자극에 곱해서 총 합쳐주자,

가지돌기1의 입력 : 10 x 가중치 1 = 총 10

가지돌기2의 입력 : 23 x 가중치 55 = 총 1265

가지돌기3의 입력 : 7 x 가중치 17 = 119

뉴런의 총 입력자극의 합 : 1394

자 간단한 계산을 통해 뉴런이 느끼는 자극의 합을 알아냈다. 1394인데, 여기서 해당 뉴런의 임계점이 1300이라면(예를들어) 현재 1300보다 큰 1394라는 자극이 들어왔으니 촉색돌기에 신호를 주어 다음 뉴런으로 자극신호를 전달하는 것이다. 와우, 아주 구체적인 과정을 통해서 뉴런이 어떻게 동작하는지 알아보았다.

반대로 임계치가 1300인데 모든 가지돌기들의 자극 합이 1299라면? .. 촉색돌기는 활성화되지 않는다. 즉 1이라도 부족하면 활성화 되지 않고 특정한 어느 임계점을 넘어야지만 활성화 되는 것이다. 우리가 중고등학교때 배웠던 역치라는 개념과 동일하다고 생각하면 된다.

자 여기까지 뉴런에 대해서 알아보았다! 인공신경망을 이해하기 위한 기초를 쌓은셈이다. 이제 인공신경망이 무엇인지 알아보자.

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

인공 뉴런으로 만들어진 신경망

자 인공신경망은 말그대로 저 위에서 말한 모든 과정을 수학적으로 모델링하여 인위적으로 만든 신경망이다. 인공신경망에도 뉴런이 있고, 그 뉴런은 인공 뉴런이라고 부른다. 이 인공 뉴런을 수학적으로 모델링 한것이 퍼셉트론(Perceptron)이라는 개념인데, 이 개념은 다음 포스팅에서 구체적으로 알아볼 예정이다.

이 인공신경망 구조를 사용하는 이유는 사실 AI 발전의 난제였던 논리적베타합(XOR) 문제를 극복할 수 있는 방법으로 제시되었기 때문이다. 향후 이 신경망 알고리즘을 통해 어떻게 XOR 문제를 극복했는지도 알아볼꺼니 당장 어..? 저게 뭐지 ㅠㅠ 할 필요는 없다. 일단, 여기서 알아둬야할 것으론, 인공신경망은 사람의 신경망과 유사하게 동작하는 수학적 모델이다~~ 라고 생각하면된다. 여기서 계속 수학적으로 라는 말을 하는 이유는 ㅋㅋ 진짜 뭐 소스코드로 쭈르륵 써서 만든 개념이 아니라, 논리적인 증명이 수학적으로 가능하기 때문이다. 나중에 이 수학적인 부분도 다루겠지만 맛보기로 알려준다면, 미분, 적분, Convolution, Dot Product 등 선형 대수의 개념으로 구현해냈다.

딥러닝(Deep Learning)이란 무엇인가?

다시 처음으로 돌아왔다. 딥러닝이 뭘까? 바로 위에서 말했던 인공신경망 모델을 통해서 머신러닝하는 개념을 보통 딥러닝 이라고 한다. 그러니까 딥러닝과 인공신경망이랑 뗄레야 뗄수가 없는 구조인거다. 이제 딥러닝의 개념이 어느정도 잡히는가? 이해가 잘 안간다면 딥러닝을 이해하려고 하지말고 인공신경망이 무엇인가? 라고 생각해보고, 인공신경망을 통해 어떻게 머신러닝을 할 것인가?의 내용이 바로 딥러닝에대한 모든 것이다.

머신러닝(Machine Learning)과 딥러닝(Deep Learning)과의 관계

 

자 딥러닝은 머신러닝의 한 분야라고했다. 그럼 머신러닝에 딥러닝 말고 뭐가있을까? 뭐 여러가지들이 있지만 간단한걸로는 선형 회귀, 로지스틱 회귀 등 여러가지 방법이 있다. 이 다른 방법들중 딥러닝의 특징은 비정형 데이터들을 잘 다룬다는 것이다.

비정형데이터라고하면 통계나 수치가 정리되어있는 엑셀표처럼 이미 만들어진 데이터들이 아닌 이미지, 영상, 음성, 소리, 텍스트, 번역 등 뭔가 실시간? 혹은 변칙수가 많은 입력들이 들어와 분석할때 딥러닝이 강하다. 그래서 신경물질을 전달하는 뉴런에서 영감을 받았는지도 모른다.

반면에 선형회귀, 로지스틱 회귀 같은 방법은 정형 데이터에 강하다. 정형데이터라고 함은 데이터베이스, 레코드파일, 엑셀 등 뭔가 수치나 통계로 뽑힌 데이터들이다. 뭐 예를들면 2010~2020년도 유방암 환자에 대한 신체 수치들에 대한 데이터들, 이런 정적인 데이터들을 읽어들여 결과를 내는데 더 좋은 성능을 발휘한다.

 

이제 앞으로 인공신경망의 최소 단위인 퍼셉트론과 퍼셉트론을 여러개 깔아 단일 계층 퍼셉트론(SLP), 다중 계층 퍼셉트론(MLP) 등 인공신경망의 기초내용을 탄탄히 다진 후 코드 실습을 할 예정이다.

[딥러닝] #4 인공신경망(ANN)과 딥러닝(Deep Learning)에 대해 알아보자! / 뉴런(Neuron)의 동작 원리

#딥러닝 #인공신경망 #ANN #DP #뉴런 #촉색돌기 #촉삭돌기 #가지돌기 #가중치 #임계치 #Threshold #기초 #기본 #개념

반응형
반응형

저번시간까지 간단하게 인공지능과 인공지능의 역사에 대해서 알아봤다. 이제 본격적으로 머신러닝이 무엇인지 알아보자.

머신러닝 (Machine Learning)

= 스스로 학습하여 성능을 향상시키는 기술

일단 인공지능과 머신러닝의 관계를 먼저 집고 넘어가자, 자. 머신러닝은 인공지능의 한 분야로써, 기계 스스로가 학습하여 더 나은 성능을 내도록 하는 기술이다. 이 기술이 인공지능이라는 큼 범주에서 뻗어나온 소범주인 것이다.

머신러닝은 학국말로 기계학습이라고하는데 이 기계학습이란게 뭘까? 쉽게 말하면 프로그램에게 입력들을 주고 출력을 확인한후 그 출력에따라 프로그램이 로직을 조정하여 다음 입력을 주었을때 더 좋은 결과가 나오도록 프로글매 스스로가 본인의 로직을 수정하며 개선해나가는 것이다.

스스로 로직을 수정한다?

 

비전공자들도 그렇고 코딩을 좀 해봤던 전공자들도 저 위 의미가 좀 헷갈릴 수 있다. 스스로 로직을 수정한다고? 우리가 알고있는 전통적인 프로그램은 인간들이 로직을 짜놓고 예를들어 입력값 a가 10보다 크면 1을 출력해! 그게 아니면 0을 출력해!!

input a 
if( a > 10 ){ 
  print : 1 
}else{ 
  print : 0
}

이렇게 로직을 짜고 돌리면 딱 저 로직에 의해서만 결과가 나온다. 그런데 이 로직을 컴퓨터가 수정한다고? 맞다. 뭐 굳이 말하면 프로그램 자체가 저 코딩되어 있는 소스 자체를 바꾸고 그런건 아니다. 수학적인 모델링을 통해 수치들을 저장해놓고 해당 수치들을 업데이트시켜 최적의 값을 찾아내는 방식이다.

예를들어 입력에 3을 입력했는데 결과가 0이네? 두번째 입력에 11을 입력했는데 결과가 1이네? 세번째 입력에 10을 입력했는데 결과가 0이네? 3개의 입력을 했을때의 결과를 봐선 입력이 10보다 크면 1을 반환하고 작으면 0을 반환하는 것을 알아냈다. 그럼 프로그램이 기준을 input>10 이라고 정한다. 혹여나 나중에 다른 입력과, 출력이 들어와도 위에 말한 수학적 모델을 통해 이 기준 값을 프로그램이 스스로 수정하는 것이다.

정리하자면 과거의 전통적인 프로그램은 사용자가 룰을 입력하여 아웃풋을 내는 거였으면, 머신러닝은 아웃풋을 입력받아 자기 스르로 룰을 만드는 것이다. 이제 이해가 조금 되려나..!?

이렇게 머신러닝에도 여러 종류들이 있다. 로지스틱 회귀, 선형 회귀, 인공신경망(딥러닝) 등, 일단은 이 머신러닝의 학습 종류에 대해서 집고 넘어가 보자

머신러닝에서 훈련의 의미

 

머신러닝에서는 훈련이라는 단어가 많이쓰인다. 아니, 필수라고 해도 과언이 아니다. 그럼 머신러닝에서 훈련이라는 단어으이 의미는 무엇일까? 우리가 알고 훈련의 의미 그대로다. 위에 머신러닝의 동작 방식을 잠깐 살펴보면, 입력을 주고 프로그램이 그 입력과, 출력을따져보고 규칙을 스스로 수정한다고 했다. 이 한번의 과정이 한번의 훈련이다.

100개의 입력, 출력을 주고 규칙수정이 100번 일어났다면 이건 100번 훈련했다고 한다. 즉, 프로그램이 스스로 개선하도록 여러가지 입력(문제)과 출력(답)을 주고 기준을 수정하는 과정이 바로 훈련이다. 말그대로 머신러닝은 기계가 학습하는 과정이기 때문에 이 학습과정에서 훈련과정은 필수라고 할 수 있다.

지도 학습

= supervised learning

= 입력과 타깃으로 모델을 훈련

 

 

지도 학습은 말그대로 이해해보면 인간이 프로그램을 지도해주는 것이다. 위 데이터 예시를 보면 프로그램한테 구름의 양에따라서 실제로 비가 내렸는지에 대한 과거 데이터들을 넣어준다 이걸 훈련데이터라고 부른다. 총 7개의 데이터를 넣어주고 구름의 양이 67%면 비가 안내렸고, 다음 31%였을때 비가 안내렸고 99%였을떄 비가 내렸고.. 총 7번의 데이터를 순차적으로 넣어주며 프로그램이 훈련한다.

결국 7번의 훈련을 거쳐 플그램은 대략 구름의 양이 70% 보다 많으면 비가 오고, 그 이하면 비가 안온다의 기준을 만들어 낸다. 데이터가 7개 밖에 없지만 여기에 수억개의 훈련 데이터가 들어오면 이 기준은 아주 정교해진다.

이렇게 과거의 입력(Input)과 출력(Target)에 대한 데이터들을 주고 이 데이터의 패턴을 확인하여 기준을 만드는게 바로 지도학습이다. 그리고 이 훈련된 데이터에 새로운 입력을 넣으면 그 예상 결과를 나타내 주는게 바로 지도 학습!

 

→ 지도 학습의 한계

지도학습에서 가장 중요한건 훈련데이터다. 정교한 프로그램이 될려면 거대한 훈련데이터가 필요한데 이런 데이터를 수집하거나 만드는 과정도 만만치 않으며, 이 데이터중에 오차가 큰 데이터가 있을때도 문제가 된다.

가장 큰 문제는 입력들이 새로 들어왔을때 실시간으로 모델이 최신화 되지 않는다는 것이다. 새로 입력된 데이터를 포함하여 새로 훈련시켜야한다는 것인데, 즉, 모델이 한번 만들어지면 그 모델에대한 예상값만 반환할뿐 환경변화에 적응하기 어렵다는 단점을 가지고 있다.

비지도 학습

= unsupervised learning

= 타깃이 없는 데이터로 훈련

 

비지도 학습은 지도학습과 반대로 타깃데이터가 없다. 즉 입력만 있고 결과 데이터가 없이 주어진다는 것이다. 이런 비지도 학습을 이용하는 하는 예씨로 그룹 분류가 있다.

그룹을 만들기 전까지는 어떤 그룹도 존재하지 않고, 어떤 그룹이 있을지도 모르기 때문에 타깃(target)이 없는 것과 같다. 타깃이 없는 상태에서 프로그램은 해당 입력들을 특서엥 맞게 분류하여 군집(Target)을 만든다.

이런 방식이 바로 비지도 학습이다.

강화 학습

= reinforcement learning

= 결과에 대해 상과 벌을 준다.

아까 잠깐 보았던 지도학습을 보면, 입력들을 이용해 규칙(Rule)을 만들어 냈다. 하지만, 한번 만든 모델에 입력을 넣어 그 예상 결과만 받아볼뿐 입력의 성격이 바뀌면 여기에는 적응하지 못하는 한계를 가지고 있었다. 하지만 강화학습을 이용하면 위 문제를 어느정도 해결 할 수 있다.

강화학습은 입력을 가지고 타겟을 평가한다. 그래서 맞으면 상을주고, 틀리면 벌을주면서 가지고 있는 규칙을 조정한다. 이러면 나중에 입력들의 성격이 바뀌어도 상벌에 의해서 규칙이 그 환경에 맞게 적응할 수 있는 것이다.

 

위 내용을 하나의 모델로 만든 것을 에이전트라고 부른다. 에이전트의 목표는 최대한 많은 보상을 받는 것이 목표다. 구글의 알파고도 이런 강화학습을 이용해 만들어졌다.

[딥러닝] #3 머신러닝이 무엇인지 알아보자! / 인공지능과의 관계 / 지도학습 / 비지도학습 / 강화학습

​#딥러닝 #머신러닝 #인공지능 #관계 #지도학습 #비지도학습 #강화학습

반응형
  1. 1 2020.10.06 16:17

    안녕하세요. 글 잘 읽었습니다. 혹시 인공지능, 머신러닝, 딥러닝에 대한 설명을 도식화 해놓은 이미지를 사용해도 괜찮을까요? 좋은 설명이라서요!!

반응형

우리는 저번시간에 인공지능이 무엇 인지 공부했다. 간단하게 인공지능이 무엇이었는지 정리하자면 , "인간의 지능을 만들기 위한 시스템" 정도로 정리하고 가면 된다.

인공지능의 역사는 1950년대 튜링머신이 나오고부터 시작했다. 이후 1965년에는 앨리사라는 챗봇 시스템이 개발되기도 했다. 앨리사도 인공지능이라고는 하지만 사실 모든 상황을 분기처리하여 어떤 상황에서도 답을 낼 수 있는 프로그램에 불과했기 때문에 우리가 생각하는 스스로 배우면서 지식을 습득하는 그런 AI는 아니었다.

퍼셉트론의 XOR 문제

= 베타적 논리합 회로 처리 불가

그렇게 AI의 역사가 시작되면서 잘될것만 같았던 AI의 발전도 한가지 문제를 맞이하면서 침체기를 맞게 된다. 일면 퍼셉트론의 XOR 문제라고 하며, 지금 처음 인공지능에 입문한 사람들이면 당연히 퍼셉트론이 무엇인지 모를것이니 그냥 넘어가도 된다. 나중에 포스팅을 따로 하겠지만 지금 당장은, AI를 구현하기 위한 아주 작은 뉴런을 모방한 솔루션 정도로 생각하면 된다.

맨 좌측 XOR 게이트의 그래프를 보면 + 와 -의 결과를 직선(선형)하나로 나눌 수가 없는 문제가 발생헀다. 보면 OR 게이트와 AND 게이트는 선 하나로 +와 -를 구분할 수 있는데, XOR은 불가능한 것이다!! 그래서 잘나가던 AI의 역사도 이렇게 막을 내리나 싶었지만 마빈 민스키 교수가 멀티레이어를 이용하면 풀 수 있다고 했다.

MLP (Multilayer Layer Perceptron)

위처럼 단층 레이어가 아닌 두개의 레이어(파란색)을 이용하면 맨 우측 그래프처럼 두 개의 직선으로 XOR 결과를 나눠낼 수 있다는 것을 밝혔다. 하지만 그 당시 위 개념을 모델링 하기에는 이론적으론 가능하나, 실제로 구현하기에는 너무 복잡해 구현할 수 없다고 판단했다. (위 그림이 뭔지 이해 못해도 된다. 나중에 제대로 공부할 것임으로, 비 전공자들은 그냥, 아~ 모양의 모델이 있다는것만 눈에 익혀두면 된다)

그 외에도 이 MLP 모델은 학습을 시킬 수 없는 모델이기 때문에 그 한계를 지적했다. 하지만 이 문제느 향후 오차역전파 방법을 통해 해결된다.

AI 침체기

1970~1990

그렇게 1974년 에서 1980년 1차 AI winter 즉, AI의 겨울이 찾아왔고, 이후 1987년~1993년 2차 AI winter가 찾아왔다. 즉 .. 이 기간동안 AI의 발전이 침체되던 시기다.

 

1997년 IBM사가 만든 딥블루(DeepBlue)라는 인공지능이 인간의 영역이라고만 생각했던 체스게임에서 당시 세계 체스 챔비언 '개리 사크파로프(Garry Kasparov)를 대결에서 꺽었기 때문이다. 하지만 당시 딥블루는, 체스 게임에서 나올 수 있는 모든 경우의수를 학습해 이길 수 있었지만, 이걸 바둑에 대입하면, 경우의 수가 우주의 모든 원자의 갯수만큼 거대한 량이 되어버려 학습하기 불가능한 규모가 되어버린다.

그래서 딥블루처럼 모든 상황을 전수조사해 학습하는 모델은 다른 분야에 적용하기 한계가 있어서, 대중들에게는 충격적인 사건이었지만, 학술적으로는 페러다임을 바꾼 정도의 사건은 아니었다.

뉴럴 네트워크의 등장

Artifical Neural Network : ANN

그렇게 시간이 흘러서 인공신경망이라는 모델이 나왔다. 이 모델을 이용하면 멀티 레이어를 이용해 마빈 민스키 교수가 말했던 방법대로 XOR 문제를 해결할 수가 있었다. (뉴럴 네트워크에 대해서는 향후 포스팅에서 제대로 알아보도록하자)

2009년 구글이 자율주행 자동차를 만들기 위해 위 방식으로 시동을 걸었고 그렇게 시간이 흘러 2016년 구글의 자회사인 딥마인드(DeepMind)사의 알파고가 진짜 인간의 영역이라고 생각했던 바둑 분야에서 승리를 하면서 전세계에 충격을 주게 된다.

이후 이제 AI가 못하는 분야가 없다..! 인간의 영역이라고 생각했던 창작이란 영역에서도 A가 활용될 수 있음을 확인했다. 여기까지 인공지능의 역사를 간략히 알아봤다. 다음부터는 본격적으로 머신러닝, 딥러닝에 대해서 알아보자.

[딥러닝] #2 인공지능의 역사 / 퍼셉트론의 XOR 문제 / 인공신경망(Artificail Neural Network : ANN)

 

#딥러닝 #기초 #인공지능 #퍼셉트론 #XOR문제 #인공신경망 #ANN

반응형
반응형

GPT-3
  Gneration Pre-trained Transformer 3 

 GPT-3는 OPEN AI사에서 만든 딥러닝을 이용해 인간처럼 텍스트를 만들어낼 수 있는 자기회귀 언어 모델이다. 

 

   베타는 6월 11일 공개되었으면 지금 2020년 8월 가장 핫한 자연어처리 API라고해도 과언이 아니다. 기존에 자연어 처리하는데 있어서 인간들이 만족할만한 성능을 내지 못했다면 GPT-3는 다르다. 1750억개라는 아주 무지막지한 물량의 매개변수로인해 기존에 나온 자연어처리 모델들과 성능이 차원이 다르다.

 

https://openai.com/blog/openai-api/

 

OpenAI API

We’re releasing an API for accessing new AI models developed by OpenAI. Unlike most AI systems which are designed for one use-case, the API today provides a general-purpose “text in, text out” interface, allowing users to try it on virtually any Engl

openai.com

  공식 홈페이지에 들어가보면 예시들이 있다. 몇가지 살펴보자면 상식 QnA를 진행한다거나, 검색 엔진의 기능을 한다거나, 기사나 이력서를 작성하는 듯, 이제는 사람과 크게 다를것 없는 혹은 오히려 특정 분야에서는 인간보다 더 나은 성능을 내는 모델을 만들어냈다.

 

API 사용 신청하기

  아무튼 엄청 강력한 자연어처리 모델이라는 것은 알았고, 이 API를 지금 바로 사용할 수는 없다. 현재 OPEN AI사 홈페이지에서 사용신청을 받고있으며 간단하게 폼을 작성해 제출하면 API를 사용할 수 있는 키를 발급해 준다. 이제 신청하는 방법을 알아보자.

 

https://openai.com/blog/openai-api/

 

OpenAI API

We’re releasing an API for accessing new AI models developed by OpenAI. Unlike most AI systems which are designed for one use-case, the API today provides a general-purpose “text in, text out” interface, allowing users to try it on virtually any Engl

openai.com

  위 링크에 접속해서 살짝 밑으로 내려보면 "JOIN WAITLIST" 버튼이 있다 클릭해보자.

  내용은 간단하게 5가지를 채워주면 된다. 그리고 맨 하단 제출 버튼을 누르면 API 사용신청이 완료된다. 추후에 이제 사용가능 유무에 대한 이메일이 발송 된다.

 

[GPT-3] OPEN AI 자연어 처리 API GPT-3  소개 및 사용 신청하기 

 

#GPT3 #OEPNAI #자연어처리 #API #소개 #사용신청 #인공지능 #AI #딥러닝

반응형
반응형

최근들어 인공지능분야에 관심이 생겨 개인적으로 공부하고 있다. 우리가 뉴스에서 접하기를 인공지능이랑 단어도 접해보았고, 머신러닝도 접해봤고, 딥러닝도 들어봤을 것이다. 이게 각각 다른걸까? 하나를 알기위해 숲을 봐야하듯이 먼저 이 개념들의 관계를 정리하고 시작하자!

인공지능

=인간의 지능을 만들기 위한 시스템

인공지능이란 AI(Artificial Interlligence)라고도 알고 있으며, '인간의 지능을 만들기 위한 시스템' 정도로 해석된다.

우리가 알고 있는 인공지능 바둑기사 알파고, 아이언맨의 자비스도 모두 인공지능에 해당된다. 그렇다. 인간이 만들어낸 가상의 지능이 모두 인공지능이라는 아주 큰 범주에 속하게되는 것이다.

강 인공지능 vs 약 인공지능

 

강 인공지능 - 아이언맨 자비스(JARVIS)

강 인공지능은 Strong AI 라고 불리는 것 처럼 강력한 지능을 가진 인공지능을 뜻하며, 사람과 구분이 안될정도의 지능을 가진 AI를 뜻한다. 우리에게 가장 친숙한 강 인공지능으론 아이언맨의 자비스가 대표적이다. 토니 스타크와 농담도 주고받고, 진짜 사람과 대화하는 것처럼 유연한 대화가 이루어진다.

반면에 우리가 인공지능 비서로 알고 있는 삼성의 빅스비나, 애플의 시리를 보면 아직기술로는 아이언맨의 자비스터럼 유연한 대화가 이루어지지 못한다. 일단 음성으로 명령을 내리면 인식하는데도 1~2초가 소요되며, 항상 사용자는 명령 결과를 기다리면서 '잘..이해했으려나..?' 라는 생각을 가지고 기다린다 ㅋㅋ. 그리고 뭐 알람맞춰줘, 전화걸어줘, 이정도는 어느정도 해도, 완전 새로운 명령이나 질문을 하면 '아직 그것까진 모르겠네요'라고 말하거나 전혀 엉뚱한 대답을 하기도 한다.

그렇다. 우리가 살고 있는 2020년도에는 아직 강 인공지능은 없으며, 그만큼 구현하는데 높은 기술력이 필요하며 어렵다. 그래서 현재 이 기술을 구현할 수 있는 방법을 알고있는 사람은 없으며, 이런 시스템이 언제쯤 만들어질지도 예측이 힘든 기술이다.

약 인공지능 - 시리, 빅스비, 테슬라 자율주행

 

위에서 말했듯이. 아직 인간과 동등한 지능은 아니고, 간단하게 인간이 판단하는데 있어서 보조를 해주거나, 간단한 명령어를 처리해주는 것을 모두 약 인공지능이라고 한다. 그렇다 현재 2020년에는 이런 약 인공지능의 시대가 열려 인공지능 스피커, 인공지능 비서 시리, 빅스비, 영상처리 기술인 딥페이크, 인공지능 의사 왓슨, 테슬라의 자율주행 등 여러가지 약 인공지능이 나왔다.

위 인공지능들의 특징을 보면 특정 영역에서 작업을 수행한다는 것을 알 수 있다. 운전보조, 질문답변, 검색등 비교적 간단한 기능을 수행한다. 이처럼 우리는 약 인공지능이 본격적으로 성장하기 위한 세상에 살고 있고, 위에서 말했듯이 강 인공지능은 현재 생각하기 힘든 기술이기 떄문에 보통 사람들이 AI를 말하면 약 인공지능을 생각하면 된다.

[딥러닝] #1 인공지능이 무엇인지 알아보자 / 강 인공지능 vs 약 인공지능

#딥러닝 #입문 #인공지능 #강인공지능 #약인공지능 #AI

반응형

+ Recent posts