분류 전체보기

· 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번 성능을 평가한 후 계산된 성..
· 인공지능
규제 적용 로지스틱 회귀에 규제를 적용해보자. 앞에서 만들어 놓은 SingleLayer 클래스에 L1 규제와 L2 규제를 적용하자. def __init__(self): self.w = None self.b = None self.losses = [] self.val_losses = [] self.w_history =[] self.lr = learning_rate self.l1 = l1 self.l2 = l2 l1, l2 변수를 만들었다. def fit(self, x, y, epochs=100, x_val=None, y_val=None): self.w = np.ones(x.shape[1])#가중치 초기화 self.b = 0#절편 초기화 self.w_history.append(self.w.copy())#가중치..
· 인공지능
규제 과대 적합을 해결하는 대표적인 방법 중 하나가 가중치 규제(regularization)이다. 가중치 규제란 말 그대로 가중치의 값이 커지지 않도록 제한하는 기법이다. 가중치를 규제하면 모델의 일반화 성능이 올라간다. 두 그래프 모두 점들을 잘 표현하고 있다. 그러면 둘 중 어떤 그래프의 성능이 더 좋을까?? 이 경우에서는 기울기가 완만한 그래프가 성능이 좋다. 박스 표시된 점까지 잘 표현하였기 때문이다. 몇 개의 데이터에 집착하면 새로운 데이터에 적응하지 못하므로 성능이 좋지 않다. 이럴 때 규제를 사용한다. 대표적인 규제 L1 규제와 L2 규제를 알아보자. L1 규제 손실 함수에 가중치의 절댓값인 L1 노름(norm)을 추가한다. w는 벡터를 의미한다. 로지스틱 손실 함수에 L1 규제를 적용해보자..
· Python/numpy
https://github.com/rougier/numpy-100 11. np.eye(n): n*n사이즈의 항등 행렬을 생성한다. 12. np.random.random(form): form에 맞는 난수 행렬을 생성한다. 13. min(), max(): 최솟값, 최댓값을 받아온다. 14. mean(): 평균을 구한다. 15. 기존 행렬의 테두리를 바꾼다. 16. 기존 행렬의 padding을 적용 17. nan은 수가 아니다. 따라서, 비교가 불가능하다. (하지만, in은 가능하다) 18. diag( ): 대각선을 다루는 함수이다. k로 위치를 조정할 수 있다. (대각이 0) 19. index를 이용하여 checkboard를 만든다. step을 주어 행렬을 변경한다. 20. unravel_index(inde..
· 인공지능
학습 곡선 훈련 세트와 검증 세트의 정확도를 그래프로 표현한 것이다. 과대적합 과대적합이란 모델이 훈련 세트에서는 좋은 성능을 내지만 검증 세트에서는 낮은 성능을 내는 경우를 말한다. 첫 번째 그래프가 이에 해당한다. 이러한 모델을 '분산이 크다'라고도 말한다. 과대적합의 주요 원인 중 하나는 훈련 세트에 충분히 다양한 패턴의 샘플이 포함되지 않은 경우이다. 이런 경우네는 더 많은 훈련 샘플을 모아 검증 세트의 성능을 향상할 수 있다. 하지만, 불가능할 경우 모델이 훈련 세트에 집착하지 않도록 가중치를 제한하는 것이다. 이를 모델의 복잡도를 낮춘다고 표현한다. 과소적합 과소적합이란 모델이 훈련 세트와 검증 세트에서 측정한 성능이 가까워지지만 성능 자체가 낮은 경우를 말한다. 두 번째 그래프가 이에 해당한..
· 인공지능
모델 튜닝 사이킷런의 SGDClassifier 클래스를 이용하여 로지스틱 회귀 문제에 경사 하강법을 적용했다. 이때 loss 함수를 log로 지정했었다. from sklearn.datasets import load_breast_cancer from sklearn.model_selction import train_test_split cancer = load_breast_cancer() x = cancer.data y = cancer.target x_train_all, x_test, y_train_all, y_test = train_test_split(x, y, stratify = y, test_size=0.2, random_state=42) train_test_split() 함수를 이용하여 데이터를 나눌 ..
· 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 연습문제를 다운로드하여 풀어볼 예정이다. 4. zeros라는 메서드를 이용하여 n개의 요소를 0으로 채운 vector를 생성할 수 있다. size와 itemsize를 이용해 전체 사이즈를 구할 수 있다. 7. arange(start, end): start부터 end-1까지를 요소로 갖는 vector 생성 8. Z[::-1]: step을 음수로 주어 reverse 9. vector를 생..
hvv_an
'분류 전체보기' 카테고리의 글 목록 (51 Page)