본문 바로가기
반응형

개발 Tools/파이썬_Deep learning & ML24

딥러닝 RNN의 모든 것이었으면 좋겠다 ( Bidirectional RNN, Deep RNN, Seq2seq, Attention Mechanism ) RNN ( Recurrent Neural Network ) RNN이란 번역하면 순환 신경망이다. 순차적으로 뭔가를 처리하고자 만든 모델이다. 번역기나 음성인식, 주식 시세, 문장, 유전자 배열, 심전도 신호 등, 여러 곳에서 많이 사용된다. 순차적이고 동적이며 가변의 길이를 가지고 상호 의존성을 가진다. 동적이며 가변적이기 때문에 기존에 알던 CNN, DNN으로는 한계가 있다. CNN과 DNN은 이미지나 입력이 고정된 크기로 정해지기 때문이다. 그래서 나온 것이 RNN이다. 간단히 말해, 연속적이며 흐름이 있는 뭔가를 분석하기 위해 필요한 모델이다. 진짜 초간단하게 말하면 과거의 입력에 영향을 받는 모델이다. 기본 꼴은 아래와 같다. 출력과 은닉층에서도 정보를 주고받는다. 즉, 은닉층이 순환 에지를 가진.. 2022. 6. 9.
딥러닝 CNN의 모든 것이었으면 좋겠다 ( channel, strid, padding, pooling, Convolution ) CNN ( Convolution Neural Networks )은 입력이 이미지라는 전제로부터 시작한다. CNN은 DNN의 문제로부터 나왔다. DNN은 입력을 1차원으로 flatten 시켜서 입력으로 주어지는데 이때 이미지가 가지고 있던 여러 정보들이 손실된다. 또한 학습 시간이 길기도 하다. 그렇다면 CNN은 어떻게 동작할까?? 실제로 우리 인간은 어떤 걸 볼 때, 특징을 뽑아내서 어떤 물체인지 판단한다고 한다. 이런 개념과 동일하게 이미지를 보고 판단한다. 아래 그림에서 강아지를 분류할 때 꼬리와 발과 머리를 보고 판단하는 것처럼 부분 부분을 뽑아서 본다. 또한 CNN은 이미지의 특징을 추출하는 부분과 클래스를 분류하는 부분으로 나눌 수 있다. 추출하는 부분은 convolution층과 활성 함수 층과.. 2022. 6. 4.
딥러닝 DNN, ANN의 모든 것이었으면 좋겠다 ( back propagation, error ) 어떻게 생겨먹은 놈인지 알아보자 퍼셉트론의 기본적인 모양은 다음과 같다. (모르겠으면 일단 넘어가면 된다) 입력을 받고 Weight를 입력과 곱해준 후 다 더해서 활성 함수에 넣고 출력을 낸다. 이렇게 하나만 있을 땐, 선형 분류와 유사하다. 간단하지 않은가? 위와 같은 perceptron이 여러 개가 쌓여서 만들어진 게 ANN이다. 또 이런 층이 겁나게 많으면 DNN이 된다. ANN은 어떤 문제를 해결할 수 있을까?? 기존에 선형 모델로는 해결할 수 없는 문제를 보자. 아래 그림을 보면 선형 모델로는 분류할 수 없는 문제가 있다. 분류 성능은 75%가 최대다. 이 문제를 ANN을 이용하여 해결해보자. 빨간색 perceptron을 보면 마치 AND Gate와 같은 동작을 한다. 파란색 perceptron.. 2022. 5. 19.
딥러닝 Softmax function (소프트 맥스) Softmax function - 이진 분류가 아닌 모든 output의 확률의 합이 1이 되도록 하고 싶다는 생각에서 나왔다. 달리 말하면 sigmoid는 하나의 클래스가 속할 확률에 대해 나타냈다면 softmax는 전체 클래스에 대해 속할 확률을 나타냈다. 만약 분류될 클래스가 k 개라고 할 때, k차원의 벡터를 입력받아 각각 클래스(output)에 속할 확률을 추정하는 것이다. 식을 보면 아래와 같다. 간단히 보면 j번째일 확률 / 전체 확률로 나타낼 수 있다. 그렇다면 h는 무엇일까?? 활성 함수를 통과하기 전에 값이다. 근데 가만 보면 그냥 h들의 조합으로 확률을 나타내도 똑같이 확률로 나오는데 굳이 e를 붙인 이유는 뭘까?? 먼저, 값이 두드러진다. 그리고 무엇보다 h가 원래 어떻게 생겼는지 보.. 2022. 5. 19.
딥러닝을 위한 기초 개념 Gradient decent Gradient decent 최적화 알고리즘이다. 기본 개념은 함수의 기울기(경사)를 구하고 경사의 절댓값이 낮은 쪽으로 계속 이동시켜 극값에 이를 때까지 반복시키는 것이다. Gradient decent는 cross entropy 같은 방법으로 에러를 측정한 뒤에 W를 업데이트하여 에러를 줄이는 방법으로 사용된다. 초기값을 잘 잡아야 한다. 이차함수(convx) 라면 시작이 어디든 최솟값을 찾아갈 수 있다 하지만 경사 하강법은 초기값이 어디냐에 따라 달라진다. 어떻게 찾아가는지 알아보자. 이때 점점 이동해야 하는데 어느 방향으로 갈지, 얼마나 갈지를 정해야 한다. 아래 수식이 Gradient decent라고 보면 된다. 얼마나 가야 할지는 내가 정한다. 하이퍼 파라미터( n )라고 부른다. 어느 방향으로.. 2022. 5. 12.