뉴런

· 인공지능
미니 배치 사용 딥러닝에서는 종종 아주 많은 양의 데이터를 사용하는데 배치 경사 하강법은 모든 샘플을 처리해야 하기 때문에 적절하지 않을 수 있다. 따라서 확률적 경사 하강법과 배치 경사 하강법의 장점을 절충한 미니 배치(mini-batch) 경사 하강법이 널리 사용된다. 미니 배치 경사 하강법의 구현은 배치 경사 하강법과 비슷하지만 에포크마다 전체 데이터를 사용한느 것이 아니라 조금씩 나누어 정방향 계산을 수행하고 그레이디언트를 구하여 가중치를 업데이트한다. 보통 16, 32, 64 등의 2의 배수를 사용한다. 미니 배치의 크기가 1이라면 1개의 샘플씩 수행하는 것이기 때문에 확률적 경사 하강법과 동일하다. 배치 크기에 따라 확률적 경사 하강법과 배치 경사 하강법의 장점과 단점을 가지는 방법이다. 미니..
· 인공지능
다층 신경망 하나의 층에 여러 개의 뉴런을 사용하면 신경망이 어떻게 달라질까?? 입력층에서 전달되는 특성이 각 뉴런에 모두 전달될 것이다. 이를 'Dense'하다고 표현한다. 정방향 계산이 진행되는 과정부터 알아보자. 3개의 특성과 2개의 뉴런이 있는 경우이다. 모두 입력층에서 특성을 전달받아 z1, z2의 출력을 내놓는다. 이를 행렬 곱셈으로 표현하면 다음과 같다. 가중치 행렬의 크기는 (입력의 개수, 출력의 개수)로 생각하면 된다, 현재 3개의 입력과 2개의 출력이 나오는 형태이기 때문에 (3, 2) 크기를 갖는다. 출력 통합 breast_cancer 데이터 세트는 binary 한 출력을 낸다. 즉, 악성인지 정상인지 판단하는 문제이다. 따라서 이진 분류 문제이므로 각 뉴런에서 출력된 값(z1, z2..
· 인공지능
로지스틱 회귀 뉴런 만들기 우선 __init__(), forpass(), backprop()은 앞서 만든 뉴런과 별로 다르지 않다. class LogisticNeuron: def __int__(self): self.w = None self.b = None def forpass(self, x): z = np.sum(x * self.x) + self.b return z def backprop(self, x, err): w_grad = x * err b_grad = 1 * err return w_grad, b_grad forpass에서 np.sum은 numpy모듈에서 sum이라는 메서드를 이용하여 가중치와 입력의 곱을 더하는 것이다. 훈련 활성화 함수라는 것이 추가되었기 때문에 fit()함수를 조정해야 한다...
· 인공지능
뉴런 만들기 딥러닝은 뇌에 있는 뉴런을 따라한 것이다. 앞서 공부한 내용으로 뉴런을 만들어 보면 더욱 이해가 빠를 것이다. 생성자 우선, 생성자에서 필요한 변수를 선언하고 초기화한다. def __init__(self): self.w = 1.0 self.b = 1.0 여기서 1.0은 임의로 선정한 수이다. 다른 수여도 아무런 문제가 없다. 정방향 계산 정방향 계산은 예측값을 계산하는 과정이라 생각해도 된다. 즉, 기울기와 절편을 예측하는 것이다. def forpass(self, x): y_hat = x * self.w + slef.b#직선 방정식 계산 return y_hat y = wx + b라는 식을 이용하여 y_hat을 구하는 과정이라 생각하면 된다. 그럼 이제 w와 b를 적절히 조정하여 올바른 모델을..
hvv_an
'뉴런' 태그의 글 목록