목록딥러닝 (7)
David의 개발 이야기!
RNN(Recurrent Neural Network) 는 입력과 출력을 시퀀스 단위로 처리하는 시퀀스(Sequence) 모델이다. 1. RNN 예시 1. POS tagging RNN은 아래그림 같이, POS tagging(품사 분류)를 할 수 있다. 모델 구조를 좀 더 자세히 보면, 이렇게 구성되어있고, POS tagging 인경우, Supervised Learning 이므로, Softmax 를 통해 품사를 분류 할 수 있다. target값과 pred 값을 비교해, gradient descent 이용해 조정해 정확도를 높여간다. 각 변수는 다음과 같은 뜻을 지닌다. 모델에 있는 변수들이 Whh, Wxh, b가 결국 같은 변수고, 시간에 따라, 변하는 것이기에 Back Propagation 이 아니라 Ba..
머신러닝 프로젝트의 업무프로세스는 다음과 같다 ( 부동산 회사 데이터 사이언티스트라고 가정하고 알아가보자! ) 1. 큰 그림을 본다 2. 데이터를 구한다 3. 데이터로부타 통찰을 얻기 위해 탐색하고 시각화 한다 4. 머신러닝 알고리즘을 위해 데이터를 준비한다 5. 모델을 선택하고 훈련시킨다 6. 모델을 상세하게 조정한다 7. 솔루션을 제시한다 8. 시스템을 런칭하고 모니터링하고 유지 보수 한다 1. 큰 그림 보기 위 데이터 모델을 학습시켜서, 다른 측정 데이터가 주어졌을 때 구역의 중간 주택 가격을 예측하고자 한다! 1.1 큰 그림을 보기 위한 질문들 A. 비지니스의 목적이 정확히 무엇인가요? (문제정의) - 모델을 만들기가 최종 목적이 아님 - 모델을 사용해 이익을 얻을 수 있어야함 B. 현재 솔루션은..
1. 데이터 주도 학습 2. 훈련데이터와 시험 데이터 기계학습 문제는 데이터를 훈련데이터와 시험데이터로 나누어서 학습과 실험을 수행한다. 훈련데이터만 사용해서 최적의 매개변수를 찾고, 시험데이터를 사용해 앞서 훈련한 모델의 실력을 평가한다. 이러한 방법을 사용하는 이유는, overfitting 문제를 피하기 위해서다. overfitting 문제는, 한 데이터셋에저만 지나치게 최적화된 상태를 의미한다.(과대적합) 3. 미니 배치 미니 배치를 이용하는 이유는 컴퓨터의 정보처리 효율성 때문이다. 컴퓨터는 10000개의 데이터를 1개씩 10000번 연산하는 것보다, batch_size 단위(100개 ) 의 데이터를 100번에 연산할때 보다 더 계산량이나 속도에 있어 효율적이다. 책에 따르면, 이미지 1장당 처리..
1. MNIST 데이터셋 MNIST 는 기계학습 분야에서 아주 유명한 데이터셋으로 0-9까지 숫자 이미지로 구성된다. 훈련이미지가 6만장, 시험이미지가 1만장 준비되어 있다. 이러한 데이터를 통해 모델을 학습하고, 학습한 모델로 시험 이미지들을 얼마나 정확하게 분류하는지를 평가한다. load_mnist 함수는 읽은 MNIST 데이터를 (훈련이미지, 훈련레이블), (시험이미지, 시험레이블) 형식으로 반환한다. 인수로는 3가지를 설정할 수 있는데, normalize 는 입력 이미지의 픽셀 값을 0.0 ~ 1.0 사이의 값으로 정규화할지를 정한다. flatten 는 입력이미지를 평탄하게, 즉 1차원 이미지로 만들지를 결정한다. FALSE 설정하면 1*28*28의 3차원의 배열로, True로 하면 784개의 원..
1. 퍼셉트론에서 신경망으로 2. 활성화함수의 등장 활성화함수에 대한 더 자세한 설명은 아래글을 참고 바란다! 2022.01.16 - [인공지능공부] - 활성화 함수가 필요한 이유는 무엇일까? 활성화 함수가 필요한 이유는 무엇일까? 신경망 회로에서, 한 노드에 대해 입력값을 다음 노드에 보낼지 말지에 대해 결정하는 함수를 의미한다. 선형 함수가 아니라 비선형 함수를 사용하는 이유는 딥러닝 모델의 레이어 층을 깊게 가 david-kim2028.tistory.com 2-1 계단 함수 구현하기 2-2 시그모이드 함수 구현하기 2-3 ReLU 함수 구현하기 3. 다차원 배열의 계산 3-1 계산하기 위해 알아야할 것들 ndim() -> 배열의 차원수를 확인하는 함수! .shape -> 배열의 형상을 확인하는 인..
9. 배치 처리를 해보자 합성곱연산도 배치처리를 지원한다. 그래서 각 계층을 흐르는 데이터의 차원을 하나 늘려 4차원 데이터로 저장한다. ( 데이터수, 채널 수, 높이, 너비 ) 순으로 저장한다. 데이터가 N개 일때, 아래의 그림과 같이 된다. 위 그림을 보면, 각 데이터의 선두에 배치용 차원이 추가되어있다. 이처럼 데이터는 4차원 형상을 가진 채 각 게층을 타고 흐른다. 여기서 주의할 점은, 신경망에 4차원 데이터가 하나 흐를때마다, 데이터 N개에 대한 합성곱 연산이 이뤄진다는 것이다! N 회분의 처리를 한번에 수행하는 의미이다! 10. 풀링 계층 풀링은 세로 가로 방향의 공간을 줄이는 연산이다. 위 그림은 최대풀링( 맥스 풀링 max pooling )을 스트라이드 2로 처리하는 것을 보여준다. 최대풀..