본문 바로가기

ML & AI

(12)
Attention is all you need * transformer 논문을 읽고 이해한 바를 ppt로 만들었다.
Stateful RNN의 input data 에 대한 이해 * 핸즈온 머신러닝(2판) 16장 내용 중 이해한 내용을 바탕으로 쓴 글임. * 개인 공부를 위해 이해한 바를 적은 글이기 때문에, 사실과 다른 내용이 있을 수 있습니다. 상태가 있는 RNN에 관하여, 책에서는 이렇게 설명하고 있다. 먼저 상태가 있는 RNN은 배치에 있는 각 입력 시퀀스가 이전 배치의 시퀀스가 끝난 지점에서 시작해야 합니다. 따라서 상태가 있는 RNN을 만들기 위해 첫 번째로 할 일은 순차적이고 겹치지 않는 입력 시퀀스를 만드는 것임. 정확히 무슨 뜻인지를 파보자. 먼저 배치의 개념을 다시 생각해보자. 배치의 개념만 정확히 이해해도 위 내용을 이해하는 것은 쉽다. 배치란, 신경망이 파라미터를 업데이트 하는 단위임. 즉, 배치 내의 모든 데이터가 한 번에 모델에 입력되고, 이를 바탕으로 ..
잔차 학습<residual learning> in ResNet * 핸즈온 머신러닝 14장을 읽고, 이해가 가지 않는 내용을 정리한 글임. 책을 읽던 도중, ResNet의 잔차학습이라는 것이 무슨 의미가 있는지 이해가 전혀 되지 않았다. 구글링을 통해 간단히나마 이해한 내용을 정리해보도록 한다. 일반적인 신경망에서, 우리의 목적은 목적함수 h[x]를 모델링하는 것이다. 즉, input x를 넣었을 때, 그 모델을 통과해서 나온 출력값을 이용하여 산출한 목적함수 h[x] [cost function이라고 가정하자] 는 0에 가까워야 할 것이다. 그런데 input x를 네트워크의 출력에 더한다면, [이를 skip connection이라고 한다], 모델의 목적은 H[X] - X를 최소화 하는 것이 된다. H[X] - X를 residual function이라고 해서, 이 주제..
1 x 1 convolution ? GoogLeNet에 대해서 공부하던 도중, 1 x 1 convolution을 왜 쓰는지에 대하여 이해가 되지 않았다. 구글링과 책에 나온 정보를 종합할 때, 다음과 같은 몇 가지 장점이 있다. 깊이 차원의 패턴 감지.[당연히 공간상의 패턴은 감지할 수 없다.] 차원[정확히 말하면 channel]의 수를 원하는 만큼 줄일 수가 있다. 비선형성 증가. [핸즈온 머신러닝에서는 이 특성을 '스테로이드 주사를 맞은 합성곱 층' 으로 비유하고 있다.] 일단, 비선형성 증가라는 특징은 각 Convolution Layer를 일반 신경망의 Dense layer라고 고려하면 매우 자명하다. 깊이 차원의 패턴 감지와 차원감소 특징의 경우 역시, 굉장히 자명하지만, 내가 convolution에 관해 잘못 이해를 하고 있었기 ..
텐서플로에서 데이터 적재와 전처리하기 * 본 글은 핸즈온 머신러닝 13장을 읽고, 내용이해를 위해 정리한 것임. 지금까지의 내용은 분석 대상 데이터의 용량에 신경쓰지 않았다. -> 데이터 용량이 매우커서, 단일 파일이나 객체(ex : np.array 등)에 저장하는게 불가능한 크기라면? ! 텐서플로는 데이터 api 덕분에 이를 쉽게 처리할 수 있다. ㄴ 데이터 api? 데이터와 이용자 사이를 연결해주는 인터페이스 정도라고 생각하면 될듯. ㄴ tf.data.Dataset 개념. : 연속적인 데이터 샘플. ㄴ 왜 np.array 말고도 새로운 개념을 적용해야 하는지? : dataset 객체가 tensorflow에서 가장 성능이 좋다 정도로 알아두자. 텐서플로에서는 대용량 데이터 저장/읽기 위해 TFRecord라는 포맷을 선호. ㄴ TFRecor..
InvalidArgumentError : Graph execution error 간단한 케라스 딥러닝 모델을 구축하던 도중, 다음과 에러가 떠서 애를 먹었다. Code: InvalidArgumentError: Graph execution error: Detected at node 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits' Node: 'sparse_categorical_crossentropy/SparseSoftmaxCrossEntropyWithLogits/SparseSoftmaxCrossEntropyWithLogits' logits and labels must have the same first dimension, got logits sha..
NMF (비음수 행렬분해) NMF는 PCA와 비슷한 용도로 사용되는 차원축소기법이다. NMF에서는 음수가 아닌 성분과 음수가 아닌 계수 값을 찾는데, 즉 주성분과 계수가 모두 음수가 아니어야 한다. 결국 음수가 아닌 특성을 가진 데이터에만 적용할 수 있다. 이름에 걸맞게, NMF는 데이터를 행렬분해 하여, 특징성분을 추출해낸다. 예를 들어, A X B의 차원을 가진 데이터 행렬은(이 때, 같은 열에 있는 원소들은 동일한 특징을 표현하고, 동일 행에 있는 원소들은 동일 데이터를 표현함) A X K 차원의 행렬과 K X B 차원의 행렬로 분해 될 수 있다. 그렇다면, 데이터 행렬의 n번째 열은 A X K 차원 행렬의 열들의 선형 결합으로 이루어지고, 이 때 B X K 차원 행렬의 열은 계수가 된다. 즉, 원본데이터의 어느 모든 특징들..
Introduction to Machine Learning with Python(IMLP): Chap 2 지도학습 1회독 기간 : 22.06.26 ~ 22.07.06. 2회독 기간 : 22.07.10 ~ 3회독 기간 : 2회독 째에는, 책의 흐름을 보다 이해를 깊게 하기 위해 단원별로 대략적인 내용과 코드를 정리해서 블로그에 올려보고자 한다. (내가 잘 모르는 내용 중심으로) 지도학습 KNN - KNN 분류기 : 가장 간단한 알고리즘. from sklearn.neighbors import KNeighborsClassifier clf = kneighborsclassifier(n_neighbors = 3) # 인자는 neighbors 수 / 거리 재는 방법(euclidian으로 하자) clf.fit(X_train, y_train) 이웃 수를 늘릴수록 less flexible - KNN 회귀 : neighbors의 평균으..
대표적인 데이터 스케일링 방법들. 머신러닝에서 데이터 스케일링을 하는 이유는, SVM과 신경망기법, 그리고 unsupervised learning 등에서 데이터 스케일링이 모델 성능에 영향을 미치는 일이 발생하기 때문이다. 대표적으로 네가지를 언급하겠다. 1. Standard Scaler : 일반적인 데이터 표준화 Z. 평균과 분산을 사용. 2. Robust Scaler : 평균, 분산 대신 중위값과 사분위수를 사용. 평균과 분산과 달리 outlier에 의해 중위값과 사분위수는 거의 영향을 받지 않으므로, oulier의 영향력이 적다. 3. MinMaxScaler : X - min / (max-min). 즉 ,변환값이 0과 1사이에 위치 4. normalizer : 변환값이 단위원 위에 위치토록 한다. 즉, 각 데이터 포인트가 다른 비율..
Random Forest vs Extra Trees 이 두개의 차이는 크게 두가지다. 1. Bootstrap 이용 여부 - random forest 는 부트스트랩 샘플링을 사용하지만, extra trees는 이를 사용하지 않고 original dataset을 사용함 2. 트리 분할 시 변수 선택 과정 - 각각의 알고리즘에서 만들어지는 다수의 트리 중 하나의 트리를 생각하자. random forest의 경우, 각각의 트리에서, bootstrap 샘플링된 데이터를 바탕으로 랜덤한 features들을 사용하여 만들 수 있는 최적의 트리를 생성한다. -반면, extra tree의 각각의 트리에서는, original data를 바탕으로(차이점 1) 랜덤한 feature들을 사용하지만, (랜덤포레스트와 동일) 최적의 트리를 만드는 것이 아니라, 각각 split 지점..
RandomForest 의 장단점 단점. 매우 차원이 높고 희소한 데이터에는 잘 작동하지 않는다. 선형모델보다 많은 메모리를 사용하며 훈련과 예측이 느리다. 장점. 매우 큰 데이터셋에도 잘 작동함. 회귀 / 분류에 있어서 현재 가장 널리 사용되는 머신러닝 알고리즘.
Logistic Regression 에서의 Regularization 머신러닝 초보자인 나는 지금 introdution to Machine Learning with Python이라는 책을 보고 있다. 책을 보던 중 지도학습 파트의 선형 이진 분류기 부분에서, Logistic Regression 과 SVM 내용이 나오는데, 여기서 regularization 의 개념이 나온다. 물론 Lasso 와 Ridge regression에서의 regularization의 개념은 배운 바 있지만, Logistic Regression에서의 규제는 어떻게 적용하는지 들어본 바 없었다. 로지스틱 회귀에서의 규제항? 로지스틱 회귀를 자세히 봐보자. GLM 구성요소에 따라 이를 분석해보면, Random Component : Y ~ B(P) -> y는 확률이 p인 이항분포를 따른다. Systemic..