-
Computer Vision/object detection TOP NEW
Object detection classification + Bounding box R-CNN 입력 data에 selective search를 이용하여 box를 만든다.(주변 픽셀간의 유사도를 기준으로 segmentation을 만든다.) —> region proposal 각각의 region proposal을 모델에 넣어서 시간이 너무 오래 걸린다. 또한 region proposal은 고전적인 머신러닝 방법을 따른다.(학습을 통해 성능 향상 힘듬) Fast R-CNN CNN feature map 추출부터 classification, bounding box regression까지... Read More
-
Computer Vision/cnn visualization TOP NEW
CNN visualization black box를 시각화하여, 어떻게 수행되고 있는지 어떻게 성능을 높일지를 생각할 수 있다. class visualization - Gradient ascent 영상 데이터를 넣었을 때, CNN 모델을 거쳐서 출력된 점수 중 가장 높은 결과물을 고른다. 이후, regularization term을 빼게 된다. Loss \[I^{*} = arg\underset{I}max\, f(I) - Reg(I)\] \[Reg(I) \,=\, \lambda||I||_{2}^{2}\] 임의의 영상에 대한 prediction score를 구한다. 이후에, score를... Read More
-
Computer Vision/image classification TOP NEW
-
Computer Vision TOP NEW
Computer vision(Image Classification) Overview visual perception은 흔히 오감이라고 불리는 인간의 시각 능력이다. 이를 컴퓨터에 비교하게 된다면 input data를 시각적으로 본 사물로 볼 수 있다. 하지만, 사람의 시각능력은 불완전하다. 기존의 사물을 생각하며, 사물을 바라보기 때문에 편향성이 존재하기 때문이다. 이러한 특징으로 과거의 고전적인 머신러닝은 데이터를 받고 직접 데이터에 대한 특징을 검사했다. (feature extracting) 하지만 딥러닝에서는 데이터를 받고, 이에 대한 데이터 검사와 분류 과정을 모두... Read More
-
Recommendation/Graph TOP NEW
-
Recommendation/군집(community) 탐색 TOP NEW
군집 탐색 그래프를 여러 군집으로 나누는 문제를 군집 탐색 문제라고 한다. 배치모형 (configuration model) 주어진 그래프에 대한 배치 모형은, 각 정점의 연결성을 보존한 상태에서 간선들을 무작위로 재배치하여 얻은 그래프이다. 군집성 (Modularity) 군집 탐색의 성공여부를 판단하기 위해 척도. 그래프와 군집들의 집합 S가 있다고 가정할 때, 각 군집들이 군집의 성질을 잘 만족하는지를 살펴야 한다. 배치 모형과 비교했을 때, 그래프에서 군집 내부 간선의 수가 월등히 많을수록 성공한 군집 탐색이다. \[-1\;\... Read More
-
ML_guide/Recommendation TOP NEW
-
Recommendation/Pagerank TOP NEW
Pagerank pagerank의 핵심 아이디어는 투표이다. 투표를 통해 사용자 키워드와 관련성이 높고 신뢰활 수 있는 웹페이지를 찾는다. 웹은 웹페이지(정점)와 하이퍼링크(간선)로 구성된 거대한 방향성 있는 그래프이다. 투표관점 pagerank 각각의 웹페이지의 페이지랭크 점수는 받은 투표의 가중치 합으로 정의된다. \[r_j = \sum_{i\in N_{in}(j)}\frac{r_i}{d_{out}(i)}\] 임의 보행 관점 \(웹서퍼가 t번째 방문한 웹페이지가 웹페이지 i 일 확률을 p_i(t)라고 한다.\) \(이때 p(t)는 길... Read More
-
NLP/BERT TOP NEW
GPT-1 self-attention을 12겹 쌓은 모델 encoding시에 masked self attention 사용한다. BERT(pre-training of Deep Bidirectional Transformers for language understanding) language model은 단지 하나의 context만 이용한다. Masked Language Model(MLM) 각각의 단어를 MASK로 치환하고, 해당 MASK를 맞추도록 모델을 학습시킨다. GPT 모델과 다르게 BERT는 전체 주어진 단어를 attention에 쓴다... Read More
-
NLP/Transformer TOP NEW
Transformer Attention모델이 기본적으로 깔려있다. self attention에서 input vector가 자기자신과의 내적으로 인해 output vector 자기자신의 정보를 포함할 경우가 있다. self Attention \[Queries : x_1 \times W^Q\] \[Keys : (x_1, x_2, x_3) \times W^K\] \[values : (x_1, x_2, x_3) \times W^V\] 사진에서 볼 수 있듯이, "i" 에 대한 sequence전체를 고려한 encoding vector를 얻기 위해서, 각각 queries, k... Read More
-
NLP/Sequence to Sequence TOP NEW
Sequence-to-Sequence RNN의 구조 중 many to many의 구조. (입력도 sequence 출력도 sequence) encoder와 decoder는 서로 파라미터를 공유하지 않는다. encoder의 마지막 timestep의 hidden state vector는 decoder의 h_0의 역할을 한다. decoder에서의 문장 생성시에, 첫 번째 단어로 <SoS> 토큰을 넣어준다. (Start of Sentence) 또한 마지막에는 <EoS> 토큰을 넣어준다. (End of Sentence) Seq2Seq... Read More
-
NLP/Beam Serach and BLEU TOP NEW
Beam search 바로 다음 단어만을 예측하는 task를 greedy decoding라고 부른다. (되돌아 갈 수가 없다…) 이러한 greedy decoding의 단점을 해소(?)하는 방법 매 time step 마다 하나의 단어만을 고려하는 greedy decoding과 모든 조합을 고려하는 Exhaustive search알고리즘의 사이에 있는 알고리즘 \[score(y_1,\,...\,,y_t) = logP_{LM}(y_1,\,...\,,y_t|x) = \sum_{i=1}^{t}logP_{LM}(y_i|y_1,\,...\,,y_{i-1},x)\] 모든 경우의 수를 다 따지지는 않지만... Read More
-
NLP/RNN (language Model) TOP NEW
RNN \[W_{xh}, W_{hh}, W_{hy} 는 각각 W_{xt}, W_{ht}, W_{ht}를 W_{ht}, W_{ht}, y_t 로 변환 시켜 준다.\] RNN의 은닉층, 출력층 \[은닉층 : h_t = f_w(h_{t-1}, x_t)\] \[은닉층 : h_t = tanh(W_{hh}h_{t-1} + W_{xh}X_t)\] \[출력층 : y_t = W_{hy}h_t\] RNN 실습 (PackedSequence) 데이터 전처리 index화가 된 데이터를 이용. vocab_size = 100 #전체 단어 수 pad... Read More
-
NLP/NLP Preprocessing(2) TOP NEW
Word Embedding 각 단어들을 특정한 차원으로 이루어진 공간상의 점, 벡터로 변환하는 것. 비슷한 의미를 가진 단어를 비슷한 공간의 점에 매핑되도록 한다. (의미상 유사도를 고려) Word2Vec 같은 문장에서의 인접한 단어들이 관련성이 높다 라는 개념 사용. Word2Vec과정을 시각화해서 볼 수 있는 곳 [클릭] CBOW (Continuous Bag of Words) 학습시킬 모든 단어를 one-hot-encoding 방식으로 벡터화 한다. 주변 단어를 이용해서 중심 단어를 예측 (window size 이용) Skip-Gram 하... Read More
-
NLP/NLP Preprocessing(1) TOP NEW
Bag-of-Words 중복되지 않은(unique) 단어를 저장 한다.(categorical variable 범주형 자료) 원-핫 인코딩을 이용해서 벡터를 나타낸다. (단어의 의미에 상관없이 벡터로 나타낸다.) Naive bayes classification Bag-of-Words를 분류할 수 있는 기법. Naive bayes classification 역시 각 단어가 독립이라 가정하기 때문에, 본질적으로 Bag-of-words와 같다.(순서 무시, 빈도만 생각) 특정 카테고리 c가 고정되었을 때, 문서 d가 나타날 확률 \[P(d... Read More
-
ML_guide/Demension Reduction TOP NEW
Dimension_Reduction PCA(Principal Component Analysis) 가장 대표적인 차원 축소 기범. 여러 변수 간에 상관관계를 이용해 주성분을 추출하여 차원을 축소한다. 붗꽃 데이터로 PCA변환 실습. ‘sepal length’와 ‘sepal width’를 기준으로 데이터 분포를 살펴본다. [코드] markers=['^','s','o'] for i, marker in enumerate(markers): x_axis_data = irisDF[irisDF['target'] ==i]['sepal_length'] y_axi... Read More
-
ML_guide/Covid19 TOP NEW
코로나19(상반기) 분석해보기 코로나 19를 대비한 정책의 개수와 확진자 수의 관계 [의도] * 코로나가 늘어남에 따라 정책의 개수가 어떻게 변화하는지에 대해 알아본다. * 코로나 유형에 따른 정책 제도가 어떻게 변화하는지를 살펴본다. 먼저 코로나 확진자의 정보를 알 수 있는 데이터를 불러온다. 칼럼들 중 상황에 필요없는 칼럼은 제거한다. patient_id ,country, city, infected_by, contact_number, symptom_onset_date, released_date, deceased_date, state 삭제 co_data.drop(['p... Read More
-
ML_guide/house_price TOP NEW
-
ML_guide/Regression(2) TOP NEW
Regression(2) 규제선형모델 (Regularized_linear_model) RSS를 최소화하는 모델만 고려하다 보면, 테스트 데이터에 예측 성능이 저하되기 쉽다. 따라서 회귀 계수의 크기 제어를 수행하는 역할(alpha)이 필요하다. [Ridge] Min(RSS(W) + alpha * ||W||^2 [Lasso] Min(RSS(W) + alpha * ||W|| [ElasticNet] Min(RSS(W) + alpha1 * ||W|| + alpha2 * ||W||^2 Ridge 회귀 계수(W)의 제곱에 규제를 가하는 방법이 Ridge 회귀이다. (L2... Read More
-
ML_guide/Regression(1) TOP NEW
Regression(1) Residual sum of squares(RSS) 실제 값과 회귀 모델의 차이의 제곱이다. 최적의 회귀 모델을 위해서는 잔차의 합이 최소가 되어야 한다. 경사 하강법(Gradient Descent) RSS를 최소화해주는 방법. 점진적인 반복 계산을 통해 회귀 계수의 값을 업데이트하며 오류를 최소화 한다. RSS를 각각의 회귀 계수에 대해서 편미분하고, 결과값을 반복적으로 보정한다. [코드] np.dot을 이용한 내적으로 식을 완성한다. def get_weight_updates(w1, w0, x, y, le... Read More
-
ML_guide/creditcardfraud TOP NEW
Ensemble - 신용카드 사기 검출(Kaggle) Undersampling , Oversampling 레이블 값이 불균형한 분포를 가질 때, 제대로 된 학습이 되자 않는다. 따라서 적절한 학습 데이터를 얻기 위해서, 언더 샘플링(Undersampling)과 오버 샘플링(Oversampling)을 사용한다. 언더 샘플링(Undersampling)의 경우 정상 레이블 데이터를 너무 많이 감소시킨다는 단점 때문에, 오히려 학습에 방해가 된다. 따라서 오버 샘플링(Oversampling)을 이용하며, 대표적으로 SMOTE(Synthetic Minority Over-sampling T... Read More
-
ML_guide/Ensemble TOP NEW
Ensemble Votting 보팅은 공통된 데이터 세트에 여러 개의 분류기가 투표를 통해 최종 예측 결과를 결정하는 방식이다. 한 데이터 세트에 여러 알고리즘을 가진 분류기를 결합한다. 보팅은 하드 보팅과 소프트 보팅이 있는데, 주로 소프트 보팅을 이용한다. (하드 보팅은 각각의 분류간의 다수결로 결정. 소프트 보팅은 확률의 평균값으로 결정) VotingClassifier 클래스를 이용하여 보팅 분류기 실행 [코드] lr_clf = LogisticRegression() knn_clf = KNeighborsClassifier(n_neighbo... Read More
-
ML_guide/DecisionTree TOP NEW
분류 - 결정 트리 결정 트리 머신러닝 알고리즘 중 가장 직관적이고 이해하기 쉬운 알고리즘. ‘균일도’라는 룰을 기반으로 이루어진 알고리즘이다. Graphviz 패키지로 트리를 시각화할 수 있다. 특별한 파라미터 없이 시각화한 결정트리 데이터 세트에서의 피처별로 중요도의 값 시각화 (iris 데이터 이용) [코드] print("Feature importances : \n{0}".format(np.round(dt_clf.feature_importances_,3))) for name, value in zip(iris_data.feature_names, dt_clf.feature_i... Read More
-
ML_guide/Evaluation TOP NEW
평가 지표 오차 행렬 (confusion matrix) 학습된 분류 모델이 예측을 수행할 때의 상태를 나타낸다. 정확도 = 예측결과와 실제 값이 동일한 건수 / 전체 데이터 수 = (TN + TP) / (TN + TP + FP + FN) 정밀도, 재현율 (precision, recall) 정밀도 = TP / (FP + TP) 재현율 = TP / (FN + TP) 즉, 정밀도는 예측을 positive로 한 대상 중에 예측과 실제 값이 일치하는 데이터의 비율이다. 반면 재현율은 실제 값이 positive인 대상 중에 예측과 실제 값이 positive로 일치한 데이... Read More
-
Welcome to Jekyll! TOP NEW
You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated. To add new posts, simply add a file in the _posts dire... Read More