728x90

Learn 28

[데이터처리및분석] SVM 정리 및 실습

[데이터처리및분석] SVM 정리 및 실습¶SVM(Support Vector Machine)은 지도 학습(Supervised Learning) 알고리즘 중 하나로, 분류(Classification)와 회귀(Regression) 분석에 모두 사용됩니다. 특히, SVM은 이진 분류 문제에서 뛰어난 성능을 발휘하며, 고차원 데이터에서도 효과적으로 작동합니다.====SVM의 주요 개념¶1. 초평면(Hyperplane):¶SVM은 데이터를 구분하는 초평면을 찾습니다. 이 초평면은 고차원 공간에서 데이터 포인트를 두 개의 클래스(또는 다수의 클래스)로 나누는 경계선 역할을 합니다.이 초평면은 w⋅x+b=0의 형태를 가지며, 여기서 w는 가중치 벡터, x는 데이터 포인트, b는 절편입니다.2. 서포트 벡터(Suppor..

Learn 2024.06.13

[컴퓨터비전] Fast-RCNN

서론이 포스트는 R-CNN을 어느정도 알고 있다고 가정하고 작성된 내용입니다.이전 R-CNN은 총 3개의 문제점이 있다.two-stage 문제학습에 공간이랑 시간이 많이 들어간다객체 탐지 자체가 느리다.여기서 c번의 문제를 Spatial Pyramid Pooling이라는 것을 통해서 정해진 사진의 크기에 상관없이 구분을 할 수 있도록 해준다.따라서 이 포스트에서는 SPPNet, Fast-RCNN에 대해서 정리해보고자 한다.본론크게 달라진 점은 2개이다. ROI pooling, Multi-task LossFast-RCNN이 R-CNN과 제일 큰 차이점이라면 원본 사진에서 feature map을 만들 때, 한번에 한다는 것이다.이것에 관해서 꽤 헷갈렸는데, Conv와 Selective Search의 순서가 ..

Learn 2024.06.13

[데이터처리와 분석] K-Mean 실습 및 확인

[데이터처리와 분석] K-MeanK-means는 비지도 학습(Unsupervised Learning) 알고리즘 중 하나로, 주로 데이터 군집화(Clustering)를 수행하는 데 사용됩니다. 이 알고리즘의 목적은 데이터를 K개의 군집으로 나누고, 각 군집 내의 데이터 포인트가 군집의 중심에서 가능한 한 가까운 위치에 있도록 하는 것입니다.1. K-means 알고리즘의 주요 단계¶1-1. 초기화:¶군집의 수 K를 설정합니다.데이터셋에서 무작위로 K개의 중심(centroids)을 초기화합니다.1-2. 군집 할당:¶각 데이터 포인트를 가장 가까운 중심(centroid)에 할당하여 K개의 군집을 형성합니다. 이는 각 데이터 포인트와 각 중심 사이의 거리를 계산하고, 가장 가까운 중심에 데이터 포인트를 할당함으로..

Learn 2024.06.13

[컴퓨터비전] R-CNN

서론Detection분야에서 DNN이 나오기 이전에 마지막까지 사용되었던 모델이다.R-CNN은 Region Based Convolutional Neural Networks : 2013이 전체 이름이다.이 부분은 DNN 이전의 기술 및 생각들을 정리하기 참 좋은 모델이라고 생각한다.왜냐하면 이해하기 힘든 최신 논문에 비하면 이 논문은 굉장히 인간적이고 필자가 이해할 수 있는 고민들을 공감할 수 있게 되면서 여러 개념이 정리된 좋은 개념이였다.본론이 모델은 크게 2가지로 구성되어 있다. 1) 사진에서 어디에 객체가 있는 지확인하는 Extract Region proposal, 2) 객체가 있을 법한 곳에서 이게 무슨 객체인지 분류하는 Classify RegionDNN을 먼저 공부하고 이걸 보면 대부분 End ..

Learn 2024.06.13

[머신러닝] Optimizer(SGD+M, AdaGrad, RMSProp, Adam, AdamW)

서론학습하는 방법에 대해서 앞으로 계속 사용하게 될 것이기에 이번 기회에 정리를 해두려고 한다.들어가기에 앞서 Optimizer는 목표를 최대화, 최소화하는 해를 찾는 과정이다.이 포스트는 최소 SGD와 그를 받침하는 개념에 대해 알고 있다고 가정하고 작성하겠습니다.SGD w, Adagrad, RMSProp, Adam, AdamW 에 대해서 알아볼 예정이고 이들은 합쳐지거나 부족한 점을 채운 것들이 많아서 앞의 몇개를 습득하면 뒤의 내용은 그렇게 어렵지 않다.특히 이름만 봐도 알 수 있는 것들이 많다.본론다양한 종류가 있는데, 그 중에서 가장 기초가 되는 Stochastic gradient descent + momentum은 이 글의 포스트에도 나와있으므로 짧게 설명하자면 기존의 값을 이용해서 좀 더 빠..

Learn 2024.06.12

[데이터처리와분석] 데이터 준비하기

개요¶1. ML을 위한 첫 데이터를 다운받고 데이터에 대해서 확인해보는 과정¶2. 사용 메소드(전처리)¶read_csv(파일,인코딩)train_set.copy()df_copy.corr()train_x = train_set.drop(["Salary"], axis=1), train_y = df_copy["Salary"]train_set, test_set = train_test_split(df, test_size=0.2, random_state=42)3. 사용 메소드(학습)¶LinearRegression()lin_reg.fit(train_x, train_y)lin_reg.predict(train_x)4. 사용 메소드(Plot)¶df_copy.plot.scatter(x='YearsExperience', y='S..

Learn 2024.06.12

[머신러닝] Normalization 종류

서론Batch Normalization은 아마도 딥러닝 분야에서 정말 기여 높은 내용으로 반드시 알아야할 내용이다.다만 BN 뿐만 아니라 다른 Normalization도 존재하는데 그 부분이 많진 않으나 헷갈릴 부분에 대해서 간략한 설명을 하고자 한다.본론Batch란 학습을 하는 하나의 단위이며, 하나의 배치에는 여러개의 샘플이 들어가 있다. 샘플(Instance)는 모여서 하나의 학습단위로 쓸 수 있다는 것이다.예시를 들자면 GD를 하기 위해 3개의 점을 한번에 학습한다면, 3개의 점(Batch), 하나의 점(객체, Instance)가 된다.Batch Normalization하나의 배치에 들어있는 하나의 객체에 대해서 같은 채널은 채널끼리 평균, 분산을 구한다.Layer Normalization하나의 ..

Learn 2024.06.12

[머신러닝] Momentum & Nesterov

서론일반적인 Gradient Descent에서 수렴을 좀 더 빠르게 하기 위함이다.이전에 필요한 내용은 모멘텀 방법이 있었고 여기서 발전한 내용이다.모멘텀에 대해서 잠시 이야기하자면 이전 단계의 기울기를 포함해 학습이 빠르고 부드럽게 만드는 것이다.NAG는 여기서 모멘텀을 활용해 예측된 값 기울기를 사용한다.자세한 수식은 본론에서 설명하도록 하고 여기서 마친다.본론모멘텀모멘텀에 대해서 잠시 짚고 넘어간다면 다음과 같다.속도 업데이트 : $v_t=\gamma v_{t-1}+\eta \nabla J(\theta_{t-1})$$v_t$는 속도, $\gamma$는 모멘텀 계수, $\eta$는 학습률,$\nabla J(\theta_{t-1})$는 $\theta_{t-1}$에서의 기울파라미터 업데이터 : $\the..

Learn 2024.06.11
728x90