전체 글

· Python/numpy
github.com/rougier/numpy-100 rougier/numpy-100 100 numpy exercises (with solutions). Contribute to rougier/numpy-100 development by creating an account on GitHub. github.com 41. np.sum() 말고 np.add()를 이용하여 array를 더할 수 있다. 42. allclose(): 두 array가 같은지 비교하는 메서드이다. 43. Z.flag.writeable = False로 설정하여 쓰기 권한을 제한하여 error가 발생한다. 44. random 한 값으로 10x2 matrix를 생성한 뒤 연산을 이용하여 값을 구한다. 45. argmax(): 최댓값을 가지는 ..
· 인공지능
미니 배치 사용 딥러닝에서는 종종 아주 많은 양의 데이터를 사용하는데 배치 경사 하강법은 모든 샘플을 처리해야 하기 때문에 적절하지 않을 수 있다. 따라서 확률적 경사 하강법과 배치 경사 하강법의 장점을 절충한 미니 배치(mini-batch) 경사 하강법이 널리 사용된다. 미니 배치 경사 하강법의 구현은 배치 경사 하강법과 비슷하지만 에포크마다 전체 데이터를 사용한느 것이 아니라 조금씩 나누어 정방향 계산을 수행하고 그레이디언트를 구하여 가중치를 업데이트한다. 보통 16, 32, 64 등의 2의 배수를 사용한다. 미니 배치의 크기가 1이라면 1개의 샘플씩 수행하는 것이기 때문에 확률적 경사 하강법과 동일하다. 배치 크기에 따라 확률적 경사 하강법과 배치 경사 하강법의 장점과 단점을 가지는 방법이다. 미니..
· 인공지능
다층 신경망 하나의 층에 여러 개의 뉴런을 사용하면 신경망이 어떻게 달라질까?? 입력층에서 전달되는 특성이 각 뉴런에 모두 전달될 것이다. 이를 'Dense'하다고 표현한다. 정방향 계산이 진행되는 과정부터 알아보자. 3개의 특성과 2개의 뉴런이 있는 경우이다. 모두 입력층에서 특성을 전달받아 z1, z2의 출력을 내놓는다. 이를 행렬 곱셈으로 표현하면 다음과 같다. 가중치 행렬의 크기는 (입력의 개수, 출력의 개수)로 생각하면 된다, 현재 3개의 입력과 2개의 출력이 나오는 형태이기 때문에 (3, 2) 크기를 갖는다. 출력 통합 breast_cancer 데이터 세트는 binary 한 출력을 낸다. 즉, 악성인지 정상인지 판단하는 문제이다. 따라서 이진 분류 문제이므로 각 뉴런에서 출력된 값(z1, z2..
· Python/numpy
github.com/rougier/numpy-100 rougier/numpy-100 100 numpy exercises (with solutions). Contribute to rougier/numpy-100 development by creating an account on GitHub. github.com 31. np.seterr(): err를 설정하는 함수이다. 모두 무시하게 설정한다. 32. False이다. nan == 1j로 다른데 emath를 사용하면 허수로 표현 가능하다. 33. np.datetime64('today'): 날짜를 받아올 수 있다. 34. np.arange()는 날짜도 적용이 가능하다. 35. 여러 함수를 사용하여 copy 없이 연산을 수행한다. 36. 모두 int부분만을 cl..
· 인공지능
벡터화(vectorization) 넘파이, 머신러닝, 딥러닝 패키지들은 다차원 배열(행렬) 연산을 빠르게 수행할 수 있다. 벡터화된 연산을 사용하면 알고리즘의 성능을 높일 수 있다. SingleLayer 클래스에 배치 경사 하강법을 적용해 보자. 배치 경사 하강법은 모든 샘플을 한 번의 훈련에 사용하기 때문에 자원이 더 소모된다. 벡터 연산과 행렬 연산 벡터화된 연산을 제대로 사용하려면 벡터 연산과 행렬 연산을 알아야 한다. 벡터 연산 중 하나인 점 곱(스칼라 곱)과 행렬 곱셈에 대해 알아보자. 단일층 신경망을 나타낸 그림이다. z를 구했던 강법은 가중치(w1, w,2, w3)와 입력(x1, x,2, x3)을 각각 곱하여 더했다. 코드는 다음과 같다. z = np.sum(x * self.w) + self..
· Python/numpy
https://github.com/rougier/numpy-100 rougier/numpy-100 100 numpy exercises (with solutions). Contribute to rougier/numpy-100 development by creating an account on GitHub. github.com 21. np.tile(): array를 반복하여 새로운 vector를 만든다. (array를 가지고 (4,4) 사이즈로 생성) 22. 평균을 빼고 표준 편차로 나누어주면 정규화가 된다. 23. dtype을 만드는 방법이다. 24. np.dot()을 이용하여 matrix끼리 곱할 수 있다. 또한, @연산자를 사용해서도 가능하다 25. 3~8 사이에 요소의 부호를 반전시키는 방법이다. 2..
· 인공지능
교차 검증 전체 데이터 세트의 샘플 개수가 많지 않을 때 검증 세트와 훈련 세트를 분리하여 사용하느라 훈련이 제대로 이루어지지 않을 결루도 있다. 이때, 교차 검증(cross validation)은 이런 경우에 사용하면 좋다. 교차 검증의 원리 교차 검증은 훈련 세트를 작은 덩어리로 나누어 다음과 같이 진행한다. 이때 훈련 세트를 나눈 작은 덩어리를 '폴드'라고 한다. 폴드를 1번씩 검증에 사용하며 훈련한다. 교차 검증 과정 훈련 세트를 k개의 폴드(fold)로 나눈다. 첫 번째 폴드를 검증 세트로 사용하고 나머지 폴드(k-1개)를 훈련 세트로 사용한다. 모델을 훈련한 다음에 검증 세트로 평가한다. 차례대로 다음 폴드를 검증 세트로 사용하여 반복한다. k개의 검증 세트로 k번 성능을 평가한 후 계산된 성..
hvv_an
이미난