목록밑.시.딥/1권 (11)
모두야
딥러닝 : 층을 깊게 한 심층 신경망이다. 앞에서 나타나느 신경망 뒷단에 층을 하나 추가하면 심층 신경망이 되긴 하지만, 문제가 몇 개 있다. 신경망 신경망을 구성하는 다양한 계층 학습에 효과적인 기술 영상 분야에 유효한 CNN 매개변수 최적화 기법 => 기술들을 집약하여 심층 신경망을 만들자. 합성곱 Conv 계층 모두 3x3 크기의 작은 필터이다. 층이 깊어지면서 채널 수가 더 늘어난다. => 합성곱 계층의 채널수는 16,16,32,32,64,64로 늘어난다. Why? 풀링 계층을 추가하여 중간 데이터의 공간 크기를 점차 줄여간다. 마지막에서 완전연결 계층은 드롭아웃 계층을 사용한다. 가중치 초깃값 He, 가중치 매개변수 갱신 Adam을 이용한다. 신경망의 특징 3X3의 작은 필터를 사용한 합성곱 계..
7.3 풀링 계층 풀링의 종류는 다양하다. 목적은 세로, 가로 방향의 공간을 줄이는 연산이다. 2x2 최대 풀링을 스트라이드 2로 처리하는 그림이다. 2x2 영역 중 가장 큰 원소를 꺼내 출력한다. 보통 스트라이드와 같은 크기로 설정한다. ex) 윈도우 3x3이면 스트라이드=3 평균 풀링도 있다. 풀링 계층의 특징 1. 학습해야 할 매개변수가 없다. 합성곱 계층과 달리 매개변수 학습 과정 없이, 대상 영역에서 최댓값이나 평균을 취하는 처리를 진행한다. 2. 채널수가 변하지 않는다. 입력 데이터 채널수 그대로 출력 데이터를 내보낸다. ( 채널마다 독립적이다.) 3. 입력 변화에 영향을 적게 받는다. 입력 데이터가 조금 변한다고 해서, 풀링의 결과가 크게 변하지는 않는다. 7.4 합성곱/풀링 계층 구현하기 ..
합성곱 신경망 Convolutional Neural Network (CNN) CNN 네트워크 구조 살펴보기 - 계층 조합 - 합성곱 계층 (convolutional layer) - 풀링 계층 (pooling layer) 지금까지 본 신경망은, 인접하는 계층의 모든 뉴런과 결합되어 있었다. [ 완전 연결 (fully-connected 전결합) ] 완전히 연결된 계층을 [ Affine 계층 ] 이라고 구현하였다. 층이 5개인 완전 연결 신경망이다. 완전연결 신경망은 Affine 계층 뒤에 활성화 함수를 갖는 ReLu 계층 (or Sigmoid 계층)으로 이어진다. Affine-ReLu 조합이 4개, 마지막 Affine 계층+Softmax 계층을 통해 최종 결정 (확률)을 출력한다. CNN에는 합성곱Conv와..
신경망 학습에 중요한 개념들 가중치 매개변수의 최적값을 탐색하는 최적화 방법 가중치 매개변수 초깃값 하이퍼파라미터 설정 방법 오버피팅 대응책 -> 가중치 감소, 드롭 아웃 ( 정규화 ) 배치 정규화 ==> 신경망 ( 딥러닝 ) 학습의 효율과 정확도를 높일 수 있다. 6.1 매개변수 갱신 딥러닝의 목적 : 손실 함수 값을 낮추는 매개변수를 찾는다. : 매개변수의 최적값을 찾는다. ====> 최적화 ( Optimization ) 딥러닝 최적화 어렵다... 너무 넓고 복잡하다. 순식간에 수식을 풀어 최솟값을 찾는 방법이 아니다. 매개변수 수도 너무 많다. -> 지금까지는 최적의 매개변수 찾는 방법을 [ 매개변수의 기울기 (미분) ] 을 이용했다. --> 매개변수의 기울기를 구하고, 기울어진 방향으로 매개변수 ..
신경망 학습 : 데이터로부터 매개변수 값을 정하는 방법 학습 : 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것 0. 신경망 학습 이란 데이터의 가중치를 정하는 것이다. 가중치 라는 매개변수가 있다. 각 값에 알맞는 가중치의 값을 찾자. 어떻게 찾지? 손실 함수의 최소값이 가중치의 최적값 일것이다. 손실 함수 최솟값은 어떻게 구해? 경사하강법을 이용해서! 순전파 forward( ) 역전파 backward( ) 곱셈 노드 MulLayer 덧셈 도드 AddLayer 지금까지는 단순한 계층이다. 다음장부터는 신경망을 구성하는 '계층' 각각을 하나의 클래스로 구현한다. 계층이란, 신경망의 기능 단위이다. ex) 시그모이드 함수를 위한 Sigmoid 기능 계층 행렬 내적을 위한 Aiffne 기능..
4.3 수치 미분 : 경사법에서는 기울기(경사) 값을 기준으로 나아갈 방향을 정한다. 미분이란? x의 작은 변화(+h)가 함수 f(x)를 얼마나 변화시키냐를 의미한다. h ( 시간의 작은 변화 ) : 얼마나 작은 변화냐면, 시간은 0에 최대한 가깝게 lim 한다. 위의 식은 x+h와 x의 기울기에 불과하다. 따라서 진정한 접선과는 다르다. 오차가 발생할 것이다. => "" 차분 "" 중심 차분 (중앙 차분) 전방 차분 기울기가 가리키는 쪽 : 각 장소에서 함수의 출력 값을 가장 크게 줄이는 방향이다. 경사 하강법 기계 학습 : 학습 단계에서 최적의 매개변수를 찾아낸다. 신경망 : 학습 단계에서 최적의 매개변수 (가중치와 편향) 을 알아내야 한다. "최적" - 손실 함수가 최솟값이 될 때의 매개변수 값 -..
신경망 학습 : 데이터로부터 매개변수 값을 정하는 방법 학습 : 훈련 데이터로부터 가중치 매개변수의 최적값을 자동으로 획득하는 것 손실함수 : 신경망이 학습할 수 있도록 해주는 지표 : 손실함수의 최소값이 가중치의 매개변수 => 최소값 찾는 법 : 경사법(함수의 기울기 활용) 4.1 데이터에서 학습한다! 신경망의 특징 : 데이터를 보고 학습할 수 있다. == 데이터를 보고 가중치 매개변수 값을 자동으로 결정한다. 데이터 주도 학습 기계학습 => 데이터에서 답을 찾고, 패턴을 발견하며, 이야기를 만든다. => 모아진 데이터로부터 규칙을 찾는 역할을 '기계'가 한다. 사람의 개입을 최소화 하여 수집한 데이터의 패턴을 찾는다. 이미지의 특징(feature)를 추출하고, 그 특징의 패턴을 기계학습으로 학습 시킨..
CH3) 신경망 - (1) CH3) 신경망 - (1) CH2) 퍼셉트론 이전 글에서 퍼셉트론에 대하여 정리하였다. 좋은 점은 이론상 컴퓨터가 수행하는 복잡한 처리도 퍼셉트론으로 표현이 가능했다. 나쁜 점은 가중치를 설정하는 부분에서는 여전히 meme2.tistory.com 3.4 3층 신경망 구현하기 w12 (1) : (1)층 가중치, 2층 1번째 뉴런, 1층 2번째 뉴런 - 구현은 각 층 모두 동일하다. - 마지막 출력층 단계에서 활성화함수는 다르다. (3.5참고) def init_network(): network = {} # network의 딕셔너리 형태로 저장 network['W1'] = np.array([[0.1,0.3,0.5],[0.2,0.4,0.6]]) # 가중치1 (입력->1층) networ..
CH2) 퍼셉트론 이전 글에서 퍼셉트론에 대하여 정리하였다. 좋은 점은 이론상 컴퓨터가 수행하는 복잡한 처리도 퍼셉트론으로 표현이 가능했다. 나쁜 점은 가중치를 설정하는 부분에서는 여전히 사람이 수동으로 작업해야 한다는 것이였다. 3.1 퍼셉트론에서 신경망으로 왼쪽 그림 : 신경망 구조 = 입력층 - 은닉층 - 출력층 오른쪽 그림 : 퍼셉트론 복습 - 편향을 명시한 퍼셉트론의 모습이다. 활성화 함수 퍼셉트론 -----> 신경망으로 바뀌는 과정 가중치가 달린 입력 신호와 편향의 총합을 계산한 a = b + w1*x1 + w2*x2 이며 y = h(a) 라고 하면 y가 0보다 크면 1 출력, 0보다 작으면 0을 출력한다. 각 원의 명칭은 [뉴런]=[노드] 이다. 3.2 활성화 함수 활성화 함수는 임계값을 경..
2.1 퍼셉트론이란? 퍼셉트론 다수의 신호를 입력으로 받아 하나의 신호를 출력한다. 신호가 흐른다 (0) , 신호가 흐르지 않는다 (1) x1, x2 입력 신호 y 출력 신호 w1,w2 가중치 원 노드 (뉴런) 입력 신호가 뉴런에 보내질 때, 각각 고유한 가중치가 곱해진다. 뉴런에서 보낸 신호의 총 합이 정해진 한계(임계값)을 넘으면 1을 출력한다. (= 뉴련이 활성화한다.) 가중치는 각 신호가 결과에 주는 영향력이다. 가중치가 클수록 해당 신호가 더 중요하다는 뜻이다. 2.2 단순한 논리 회로 AND 게이트 - AND게이트는 입력이 둘이고 출력은 하나이다. - 두 입력이 모두 1일때만 1을 출력하고, 그 외에는 0을 출력한다. (w1,w2,θ) = (0.5, 0.5, 07), (w1,w2,θ) = (0..