본문 바로가기
728x90

전체 글424

Udemy - 머신러닝의 모든 것 (Kernel SVM - 2) Social Network Ads 같은 데이터에 대해 kernel SVM모델을 만들어보자. 이전에 만든 SVM모델과 다른것은 하나도 없고 kernel을 rbf로 바꾸어주면된다. # Support Vector Machine (SVM) # Importing the libraries import numpy as np import matplotlib.pyplot as plt import pandas as pd # Importing the dataset dataset = pd.read_csv('Social_Network_Ads.csv') X = dataset.iloc[:, :-1].values y = dataset.iloc[:, -1].values # Splitting the dataset into the Tra.. 2023. 4. 30.
Udemy - 머신러닝의 모든 것 (Kernel SVM - 1) Kernel Support Vector Machine 우선 간단한 1차원 상황부터 보면 다음과 같은 경우에는 선형적인 선을 통해 데이터를 분류할 수 없다. 따라서 f = (x-5)^2 함수에 값을 얹어서 선형적으로 분류할 수 있도록 다음과 같이 바꾼다. 이제 linear한 점선으로 데이터가 분리됨을 볼 수 있다. 이를 좀더 고차원에서 살펴보면 다음과 같다. 살펴보면 z라는 새로운 차원이 생겼고 데이터들은 Hyperplane으로 나뉘어짐을 볼 수 있다. 추후에 다시 2차원으로 projection을 하면 다음과 같이 비선형 분리기가 생김을 알 수 있다. 그러나 이렇게 고차원에서 연산을 진행하고 다시 저차원으로 내리는 과정은 컴퓨터에게도 굉장히 버거운 연산이라 속도면에서 단점이 존재할 수 있다. 따라서 더 효.. 2023. 4. 26.
Lecture 14 - Dynamic Programming 동적 프로그래밍(Dynamic Programming) 동적 프로그래밍이란 큰 문제의 해답에 더 작은 문제의 해답이 포함되어 있으며, 이를 재귀호출로 구현할 때 같은 해답을 구하기 위한 중복 호출이 다수 발생하는 경우에 활용하는 문제해결 기법이다. 큰 문제의 해답에 더 작은 문제의 해답이 포함된 경우를 최적 부분 구조(Optimal Substructure)를 가진다고 한다. 동적 프로그래밍을 적용하는 문제는 아래와 같은 두 성질이 있다. ① 최적 부분구조(optimal substructure) - 큰 문제의 최적 솔루션에 작은 문제의 최적 솔루션이 포함된다. (점화식 형태로 표현) ② 재귀호출시 중복(overlapping recursive calls) - 재귀적 해법으로 풀면 같은 문제에 대한 재귀호출이 .. 2023. 4. 24.
Udemy - 딥러닝의 모든 것(Softmax & Cross-Entropy) Softmax function 우선 인공신경망에서 의문으로부터 시작해보자. output layer의 두 결과는 서로 연관이 없는데 어떻게 두 결과 값의 합이 1이 되는걸까? 사실 기본적인 인공신경망에서는 두 결과 값의 합이 1이 된다는 보장이 없다. 우리가 따로 함수를 적용시켜서 그 합이 1이 되도록 조절하는 방법이 유일하다. 그리고 그 함수가 바로 Softmax function이다. 일정한 값 사이의 값으로 바꾸어준다는 점에서 정규화함수라고 불리기도한다. Softmax function은 Cross-Entropy function과 함께 이용된다. Cross-Entropy function 함수는 아래의 Li 함수이고 우리는 아래의 H(p,q) 함수를 이용하게된다. 두 식의 모양은 조금 달라도 결과 값은 똑.. 2023. 4. 23.
Lecture3 - Discrete Random Variable Random Variable Sample Space의 event를 수직선 상의 하나의 점으로 mapping하는 것이다. 이를 함수에 올리면 다음과 같이된다. Coin Tosses Head와 Tail의 확률이 1/2로 같다고 했을때 동전을 세번던지는 경우에 대해 알아보자. 우선 Sample Space는 다음과 같다. X를 Head가 나오는 수로 두면 PDF가 다음과 같이된다. 이때 PDF는 Probability Density Function으로 확률 밀도 함수이다. 물론 엄밀히 따지면 discrete RV는 PMF 즉 Probability Mass Function 확률 질량 함수라고 불러야 하지만 수업 시간에는 편의를 위해 혼용하는 것으로 보였다. Expected value of discrete rando.. 2023. 4. 14.
Lecture 13 - 집합의 처리 상호 배타적 집합 상호 배타적 집합은 서로 공유하는 원소가 없는 여러 집합들의 모임 (disjoint sets)으로 각 집합은 대표 원소로써 해당 집합을 나타낸다. 관련 연산을 보면 다음과 같다. ▪ Make-Set(𝑥) : 원소 𝑥로만 이루어진 집합을 생성 ▪ Find-Set(𝑥) : 원소 𝑥가 포함된 집합을 찾은 후 대표 원소에 대한 포인터를 반환 ▪ Union(𝑥, 𝑦) : 원소 𝑥가 포함된 집합과 원소 𝑦가 포함된 집합을 합쳐서 합집합 생성 시간 복잡도 분석 관련하여 총 𝑚회의 Make-Set, Find-Set, Union 연산이 있을 때 𝑛번의 MakeSet 연산이 포함된 상황을 가정한다. 대표적으로 그래프 구조에서의 connected component 관련 처리에 활용된다. 연결 리스트를 이용.. 2023. 4. 10.
Lecture7 - Electric Field(2) Line charge electric field z축을 따라 선전하가 배치되었을때 P점에 전기장이 주는 전기력을 계산해보자. 선전하로부터의 거리의 1승에 반비례함을 알 수 있다. 이러한 기본 식을 활용하여 선전하가 z축에 존재하지 않는 경우를 보면 다음과 같다. 선전하가 (6,8,z)로 표현될 때의 경우이다. Sheet charge field 이번에는 면전하에 대해서 알아보았다. 거리와 관계없이 전기장은 일정함을 알 수 있다. 2023. 4. 8.
Udemy - 딥러닝의 모든 것(CNN) Convolution Neural Network란? Convolution Neural Network란 얀 르쿤이 부흥 시킨 신경망 기법이다. 보통 이미지 분류에서 많이 사용된다. ANN이 인간의 뉴런을 모방하여 구조화한 것과 같이 CNN은 인간의 시신경을 모방하여 구조화했다. 다음에서 하나씩 살펴보자. Convolution 컨볼루션은 이전에 신호와 시스템 강의에서 이미 배운적이 있는 연산이기에 간단하게 보고 넘어간다. 우선 위의 식은 전기전자, 통신 분야의 공학도들은 모두 친숙한 convolution 연산식이다. 위의 그림은 웃는 표정인 Input Image를 Feature Detector이다. 단순하게 보면 Input Image에서 Feature Detector의 사이즈에 맞는 배열을 찾아가며 Feat.. 2023. 4. 6.
Lecture 11 - 해시 테이블 해시 테이블 원소가 저장될 자리가 원소의 값에 의해 결정되는 자료구조이다. 트리에서도 값에 의해 위치가 달라지는 것 같지만 그것은 트리를 사람이 이해하기 쉽게 그렸을 때의 위치이며 메모리 상에서의 위치는 키 값에 따라 달라지는 것이 아니다. 평균 상수 시간에 삽입, 삭제, 검색이 가능하여 매우 빠른 응답을 요하는 응용에 유용하다. 예를 들면 119 긴급구조 호출과 호출번호 관련 정보 검색, 주민등록 시스템 등 에서 이용된다. 다만 해시 테이블은 최소 원소를 찾는 것과 같은 작업은 지원하지 않는다. 따라서 sorting같은 과정보다는 다순한 삽입 검색등의 과정에 적합한 자료구조이다. 위와 같이 검색키를 통해 주소계산을 하고 constant time으로 테이블에 값이 존재하는지 검색한다. 크기 13인 해시 .. 2023. 4. 3.
Baekjoon Training #9660 #9660 돌 게임 6 N=int(input()) if N%7 == 2 or N%7 == 0: print("CY") else: print("SK") 나름 골드 문제인데 너무나 간단하다. 이는 코드는 간단하지만 dp문제같이 문제 자체의 특징을 찾아서 분석하는 것이 중요하기 때문이다. 위 문제를 보면 돌을 한번에 1,3,4개를 가져갈 수 있다. 돌의 개수에 따라 상황을 생각해보자. 돌 1개 - 상근 승 돌 2개 - 창영 승 돌 3개 - 상근 승 돌 4개 - 상근 승 여기까지는 쉽게 생각해볼 수 있다. 여기서부터는 승리를 위해서는 상근이 시작하기 때문에 처음에 상근이가 돌을 가져가면서 이전 경우에서 창영승인 경우인 돌수로 만들 수 있느냐를 판단해야한다. 왜냐하면 창영승인 돌수는 결국 두번째 선택자가 무조건 승.. 2023. 4. 2.
Udemy - 머신러닝의 모든 것 (SVM) Support Vector Machine 다음과 같이 두개의 그룹으로 나누어진 데이터가 있다고 가정할때 다양한 선을 그어서 그 경계를 설정할 수 있다. 이때 SVM은 아래와 같이 양쪽 그룹에 붙혀서 그릴 수 있는 한계선 간의 거리가 최대치가 되는 경우(Maximum Margin)를 찾는다. 위 그림의 개념들을 좀더 자세히 보면 Maximum Margin을 결정하는 그룹의 끝에 위치하게 되는 data를 Support Vectors라고 부른다. 위의 두 Support Vectors 점들이 결국 SVM 알고리즘을 결정하는 결정적 요인이 된다. Maximum Margin을 기준으로 중심에 그려지는 선은 Maximum Margin Hyperplane이라고 불린다. Hyperplane은 초평면인데 선이 평면이라고 .. 2023. 4. 2.
Udemy - 머신러닝의 모든 것 (K-NN) K-Nearest Neighbors KNN알고리즘은 다음과 같이 분류되어있는 데이터 사이의 새로운 데이터를 특정 결정짓는 알고리즘이다. 알고리즘의 과정을 살펴보자. STEP 1: K의 숫자를 고른다. 이때 k는 알고리즘 안에 넣을 이웃의 수이다. 가장 흔한 디폴트 값은 5이다. STEP 2: K개의 가장 가까운 이웃 데이터를 찾는다. 이는 어떠한 거리 방식을 이용해도 괜찮지만 보통 유클리드 거리를 이용한다. STEP 3: 발견한 K개의 이웃들이 포함된 카테고리를 조사하여 각 카테고리에 포함된 이웃 수를 센다. STEP 4: 새로운 데이터를 가장 많은 이웃이 포함된 카테고리에 포함시킨다. 위 그림을 보면 k=5일때 가장 가까운 이웃으로 선정된 5개의 데이터중 3개는 Category A, 2개는 Catego.. 2023. 3. 31.
728x90