결과적으로 우리가 만든 모델의 성능이 잘 나와야한다. 우리는 CPU/GPU에 관한 내용을 제외하고 알아보도록 하자. 1. 성능 최적화 # 데이터를 사용한 성능 최적화● 많은 데이터를 수집한다. ● 임의의 데이터를 생성한다. ● 데이터의 범위를 조정한다. ex) sigmoid 사용 시 데이터셋의 범위 0~1, 하어퍼볼릭 : -1 ~ 1 # 알고리즘을 이용한 성능 최적화 k-NN, RNN, LSTM, GRU ... 우리가 배운 머신러닝, 딥러닝 알고리즘들 등등 # 알고리즘 튜닝을 위한 성능 최적화● 가장 많은 시간이 소요된다. ● 모델을 하나 선택하여 훈련시키려면 하이퍼파라미터를 변경하면서 훈련시키고 최적의 성능을 도출한다.1. 진단 2. 가중치 3. 학습률 4. 활성화 함수 5. 배..
RNN은 가중치가 업데이트 되는 과정에서 기울기가 1보다 작은 값이 계속 곱해지기 때문에 기울기가 사라지는 기울기 소멸 문제가 발생한다. 이를 해결하기 위해 우리는 확장된 모델을 사용한다. 1. LSTM 기울기 소멸 문제를 해결하기 위해 망각 게이트, 입력 게이트, 출력 게이트라는 새로운 요소를 은닉층의 각 뉴런에 추가한다. # 망각 게이트● 과거 정보를 어느정도 기억할 지 기억한다.● 과거 정보와 현재 데이터를 입력받아 시그모이드를 취한 후 그 값을 과거 정보에 곱한다.● 시그모이드의 출력이 0이면 과거 정보는 버리고, 1이묜 과거 정보는 온전히 보존한다.● 0~1 사이의 출력 값을 가지는 이전 입력층에서 입력받은 h(t-1)과 새로운 입력 값인 xt를 입력 값으로 받는다. # 입력 게이..
CNN은 이미지에 대해 적용되었다. 그렇다면 이미지가 아닌 단어, 문장 같은 건 어떻게 해야지? 1. RNN RNN은 시간적으로 연속성이 있는 데이터를 처리하려고 고안한 것이다! 이때 기억이라는 것을 이용한다. 기억이란 현재까지 입력 데이터를 요약한 정보를 말한다. 따라서 새로운 입력이 네트워크로 들어올 때마다 기억을 조금씩 수정한다. 최종적으로 남겨진 기억은 모든 입력 전체를 요약한 정보이다. => 사람과 굉장히 유사하지 않은가? 사람도 새로운 정보를 알게되면 이전에 알고 있던 것에서 이를 추가하지 않는가! 위의 그림에 대해서 짧게 설명하겠다.● 첫번째 입력(x1)이 들어오면 첫번째 기억(h1)이 만들어진다. ● 두번째 입력(x2)이 들어오면 기존 기억(h1)과 새로운 기억을 참고하여 새 기억(h..
흔히 주식 예측 프로그램, 물가 예측 프로그램을 만들었다는 이야기를 들을 수 있다. 그렇다면 시간에 따라 변하는 데이터를 어떻게 예측할 수 있을까? 1. 시계열 문제 시계열 분석이란 시간에 따라 변하는 데이터를 사용하여 추이를 분석하는 것이다. 주가 변동, 환율 변동, 기온 및 습도 변화 등이 대표적인 시계열 분석이다. 즉, 추세를 파악하거나 향후 전망 등을 예측하기 위한 용도로 시계열 분석을 사용한다. 시계열 형태는 데이터 변동 유형에 따라 불규칙 변동, 추세 변동, 순환 변동, 계절 변동으로 구분할 수 있다.● 불규칙 변동 : 시계열 자료에서 시간에 따른 규칙적인 움직임과 달리 어떤 규칙성이 없어 예측 불가능하고 우연적으로 발생하는 변동을 의미한다. 예를 들면 전쟁, 홍수, 화재, 지진, 파업 등..
CNN은 Convolutional Neural Network, 즉 합성곱 신경망이다. 어떻게 구성되는지 어떻게 발전했는지 알아보도록 하자 1. CNN 입력층 → 합성곱층 → 풀링층 → 완전 연결층 → 출력층의 구조로 되어 있다. 합성곱층과 풀링층을 거치면서 입력 이미지의 주요 특성 벡터를 추출한다. 그 다음 주요 특성 벡터들은 완전 연결층을 거치면서 1차원 벡터로 변환된다. 마지막으로 출력층에서 활성화 함수인 Softmax 함수를 사용하여 최종 결과가 출력이 된다. CNN은 이미지나 영상을 처리하는 유용하다. 그 이유가 뭘까? 이미지 분석은 3x3 배열을 오른쪽과 같이 펼쳐서 각 픽셀에 가중치를 곱하여 은닉층으로 전달한다. 그러나 펼쳐서 분석할 시 데이터의 공간 정보가 손실될 수 밖에 없다..
이전 시간에 머신러닝 때 학습했던 내용 중 중요한 내용들에 대해서 정리해보았다. 오늘부터는 본격적으로 딥러닝에 대해서 학습해보도록 하자 1. 딥러닝이란? 인간의 두뇌에서 영감을 얻은 방식으로 데이터를 처리하도록 컴퓨터를 가르치는 인공지능 방식이다. 딥러닝은 머신러닝보다 그림, 텍스트, 사운드 및 기타 데이터의 복잡한 패턴을 인식하여 정확한 인사이트와 예측을 생성할 수 있다. 이러한 딥러닝 기술을 자동차, 항공, 우주, 제조, 전자, 의학 연구 및 기타 분야에서 여러 가지 사용 사례에 활용된다. 아래는 딥러닝이 AI의 어떤 범주에 있는지 나타낸 사진이다. 이러한 형식적인 정의를 뒤로 하고 딥러닝이 어떤 구조인지 알아보자! 2. 딥러닝의 구조 딥러닝은 앞에서 다뤘던 퍼셉트론 구조에서 은닉층..
딥러닝에 대해 본격적으로 알아보기 전에 머신러닝 내용에서 딥러닝에도 필요한 기본적인 내용들에 대해 다시 한번 짚고 넘어가도록 하자. # 퍼셉트론 신경세포뉴런과 비슷하게 입력 받은 데이터를 이용하여 선형 방정식을 통해 값을 계산하고, 계단 함수를 이용해 그 값이 임계치 이상이면 참, 미만이라면 거짓을 반환하는 것을 '퍼셉트론' 이라고 한다!$ 진행 과정1. 입력 신호가 들어오면 가중치(w)를 곱하여 가중합(z)를 계산한다.2. z값이 양수라면 참, 아니라면 거짓을 반환한다.3. 계단함수를 통과한 값을 토대로 역전파 알고리즘을 이용하여 가중치와 bias를 업데이트한다. 아래의 사진은 3번 과정에 해당한다. 퍼셉트론은 가중치의 업데이트가 계단함수 통과 후에 일어난다. 계단함수를 통과한 값은 1 or -1이..