본문 바로가기
반응형

머신러닝21

머신러닝과 딥러닝의 차이 이번 글에서는 머신러닝과 딥러닝에 어떤 차이가 있는지 이야기해볼 것입니다.머신러닝은 인간이 하는 일을 기계가 대신 하도록 해주는 기술입니다. 머신러닝이라는 이름도 기계가(머신) 배운다(러닝)이라는 의미입니다. 머신러닝을 하는 상황을 하나 살펴봅시다. 강아지 사진과 고양이 사진이 여러장 있고, 강아지인지 고양이인지 맞추는 인공지능을 만들려고 합니다. 머신러닝은 사진을 입력받아 무언가를 할 수가 없습니다. 사진에서 수염의 여부, 몸통 크기, 다리 길이, 귀의 면적 등을 인간이 먼저 추출해주어야 합니다. 그리고 그 추출된 값들을 입력받아 학습을 하게 됩니다. 반면 딥러닝은 사진 자체를 입력받을 수 있습니다. 사진을 통채로 입력하면, 딥러닝에서는 알아서 특징을 추출하고 강아지인지 고양이인지 분류하는 학습을 수행.. 2025. 2. 6.
딥러닝에서 k-fold cross validation 안 쓰는 이유 k-fold cross validation 은 tablular data에서 주로 쓰인다. tabular data 는 아래와 같은 데이터다.  X : 값 Y : 레이블 이런 데이터에서는 train set 을 어떻게 뽑느냐에 따라 결과가 많이 달라질 수 있다. 한번 학습을 하는게 오래걸리지도 않는다.  따라서 여러 조합의 train set 을 뽑아보는 cross validation 을 적용하는게 유리하다.  But Image data 의 경우 어떤 train set 을 뽑느냐에 그리 민감하지 않다. 또한 학습이 오래걸리므로 여러 조합의 train set을 뽑아서 cross validation 하기가 어렵다. 2024. 7. 26.
[머신러닝 모델 검증의 이해] 3. k-fold cross validation k-fold 교차검증은 아래 순서로 진행됩니다. 1. 데이터셋을 learning set과 test set으로 나눔 2. learning set 을 k개의 fold로 나눔 3. 첫번째 fold 를 validation set 으로 나머지 fold를 training set 으로 사용하여 모델을 학습하고 error를 계산함. 4. 두번째 fold 를 validation set 으로 나머지 fold를 training set 으로 사용하여 모델을 학습하고 error를 계산함. 5. 4번 과정을 나머지 fold에 대해 반복함 6. 각 fold에서 구해진 error 들의 평균을 계산함 7. learning set 전체를 학습시키고 test set으로 평가함 아마 그래서 어쩌라는건지라는 의문이 드는 분들이 계실겁니다. .. 2023. 11. 16.
k-fold 교차검증 후에 어떤 모델을 최종으로 사용해야 하나? 관련 글 https://stats.stackexchange.com/questions/52274/how-to-choose-a-predictive-model-after-k-fold-cross-validation https://machinelearningmastery.com/train-final-machine-learning-model/ 2023. 10. 13.
[베이즈 추론의 이해] 1. 베이즈 추론의 목적 베이즈 추론의 목적은 모수의 분포를 추론하는 것입니다. 모수를 $\theta$ 라고 놓으면, 모수의 확률분포인 $f_{\theta}(\theta)$를 찾는 방법이 베이즈추론입니다. 모수를 추론하기 위해 데이터가 필요합니다. 데이터는 모집단에서 추출된 표본입니다. 표본을 벡터를 $\vec{X}$라고 놓겠습니다. 어렵게 생각하지 않아도 됩니다. 표본의 원소를 벡터형태로 표현한 것 뿐입니다. $\vec{X}$가 따르는 확률분포를 $f_{X}(\vec{X})$ 라고 놓겠습니다. 이번시간에는 베이즈 추론의 절차를 간단히 설명하고, 다음시간 부터 수식을 이용해서 설명하겠습니다. 우리는 모수의 확률분포 $f_{\theta}(\theta)$를 알고 싶은 상황입니다. 뭔지 모르므로 일단 특정한 분포를 가정합니다. 베타(.. 2023. 10. 11.
[머신러닝 모델 검증의 이해] 2. train set 은 한번만 뽑으면 되나? 데이터를 train, validation, test 셋으로 나누고 모델을 만들었다고 합시다. 이 모델은 현재 뽑힌 validation 셋에 과적합된 모델일 것입니다. 데이터를 train,validation,test 를 랜덤하게 나누는 작업 자체를 반복해서 수행한다면 이러한 문제를 해결할 수 있습니다. 데이터를 train,validation,test로 처음 나눈 상태를 S1 이라고 놓고, S1에서 모델을 학습하고 성능을 평가합니다. 다시 랜덤하게 나누고 이 상태를 S2라고 놓고 같은 작업을 반복합니다. 이렇게 데이터 나누기를 m번 반복하면 S1부터 Sm까지 m개의 성능이 있을 것입니다. 이 성능들의 평균을 구하여 모델의 성능으로 사용하면 됩니다. 그런데 이 방법에는 문제가 있습니다. 랜덤하게 모델을 나눌 .. 2023. 10. 10.
머신러닝과 딥러닝의 차이 딥러닝은 머신러닝의 하위 카테고리 입니다. 따라서 딥러닝과 머신러닝을 비교하는 것은 말이 되지 않습니다. 마치 사과와 과일을 비교하는 것과 같습니다. 하지만 딥러닝이 등장하기 전의 머신러닝들과 딥러닝을 비교하는 것은 가능합니다. 딥러닝이 등장하기 전의 머신러닝들을 전통적 머신러닝이라고 부르겠습니다. 딥러닝과 전통적 머신러닝들의 차이는 특징추출을 누가하는가에 달려 있습니다. 전통적 머신러닝에서는 특징추출을 사람이 직접하고, 딥러닝에서는 신경망이 합니다. 예를 들어봅시다. x-ray 를 가지고 어떤 질병 여부를 판단하는 머신러닝 모델을 만들고 싶다고 합시다. 전통적 머신러닝에서는 우리가 x-ray 에서 다양한 치수들을 정의하고 해당 치수들을 측정하여 입력 데이터를 만들어야 합니다. 이때 측정된 치수들이 특징.. 2023. 9. 26.
[머신러닝 모델 검증의 이해] 1. train, validation, test set 은 왜 나뉜걸까 머신러닝 모델을 학습시킬 때 데이터를 train, validation, test set으로 나눕니다. 왜 이렇게 나누는지 알아보겠습니다. 우리가 1000명의 혈액검사 데이터와 같은 사람의 A라는 질병 유무 데이터를 갖고 있다고 합시다. 이 데이터를 이용하여 질병 A를 진단하는 머신러닝 모델을 만들려고 합니다. 1000명의 데이터 전체를 사용하여 머신러닝 모델을 만들면, 우리가 만든 머신러닝모델이 정확한지 평가할 데이터가 없습니다. 모델을 둘로 나눠서 일부는 모델 학습에 사용하고 나머지는 모델 평가에 사용하기로 했습니다. 1000명 중 임의로 250명을 뽑아서 모델 평가에 사용할 것입니다. 이렇게 뽑힌 250명을 test set이라고 부르고, 나머지 750명을 train set 이라고 부르겠습니다. tra.. 2023. 9. 25.
[머신러닝] 민감도와 특이도의 의미를 기억하는 방법 민감도와 특이도는 환자의 질병을 진단하는 기기 또는 모델의 성능을 판단할 때 주로 사용됩니다. 우리가 어떤 질병을 진단하는 기기를 개발하였다고 합시다. 해당 질병을 가진 환자와 정상인을 모집하여 기기의 성능을 테스트한다면, 테스트 결과는 아래와 같은 표로 나타낼 수 있습니다. 열에 있는 Positive 는 검사 결과가 양성, Negative 는 검사 결과가 음성임을 의미합니다. 행에 있는 Disease 는 환자, Normal 은 정상인을 의미합니다. 환자인데 양성이 나온 경우를 True positive , 환자인데 음성이 나온 경우를 False negative 라고 부릅니다. 정상인인데 양성이 나온 경우를 False positive, 정상인인데 음성이 나온 경우를 True negative 라고 부릅니다... 2023. 9. 5.
[파이썬 판다스] 데이터프레임 인덱싱 방법 (인덱스 vs 이름) 먼저 판다스 데이터프레임을 하나 만들어봅시다. import pandas as pd L1=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]] df=pd.DataFrame(L1,columns=['C1','C2','C3'],index=['R1','R2','R3','R4']) 만들어진 데이터프레임은 아래와 같습니다. >>> df C1 C2 C3 R1 1 2 3 R2 4 5 6 R3 7 8 9 R4 10 11 12 데이터프레임 인덱싱을 하는 상황은 아래와 같이 나뉩니다 1) 인덱싱 방법 : 인덱스 or 이름 2) 인덱싱 결과 : 행 or 열 or 복합 인덱싱 방법으로 큰 분류를 나누고, 각 방법 안에서 인덱싱 결과를 행, 열, 복합으로 출력하는 방법을 알아봅시다. 1. 인덱스를 사용하여 인덱싱 il.. 2023. 9. 5.
[머신러닝] 릿지 회귀모델이란? 릿지(ridge)회귀모델은 L2 규제가 적용된 선형회귀모델입니다. 규제는 모델의 과적합을 방지하기 위해 사용합니다. 단순 선형 모델에 비해 과적합이 개선되기는 했지만 자주 사용되는 모델은 아니라고 합니다. 성능이 별로 좋지 않습니다. 규제에 대해 조금 더 설명하겠습니다. 보통 머신러닝 모델을 만들 때 손실함수 값이 최소가 되도록 파라미터를 최적화합니다. 하지만 손실함수 값이 너무 작다는 것은 '과적합'을 의미할 수도 있습니다. 과적합을 방지하려면 손실함수 값이 너무 작아지지 않도록 해야합니다. 손실함수 값을 너무 작아지지 않도록 조건을 추가하는 것을 규제라고 부릅니다. 조건은 어떤 값일 수도 있고 함수일 수도 있습니다. 선형회귀모델에서 규제는 가중치를 규제하는 방향으로 이루어집니다. 특정 파라미터의 가중.. 2023. 9. 4.
[손으로 푸는 로지스틱 회귀분석] 5. 비용함수 (2) log loss 로지스틱 회귀분석에서 사용하는 모델은 아래와 같습니다. 로지스틱 함수라고 부릅니다. $f(x)=\frac{1}{1+e^{-(\beta_{0}+\beta_{1}x)}}$ 우리는 이 함수의 계수인 $\beta_{0}$과 $\beta_{1}$을 결정해야 합니다. 우리가 가진 데이터를 가장 잘 표현하도록 계수를 정할겁니다. 데이터는 아래와 같습니다. 번호 공부시간 통과여부 1 1.5 0 2 1.8 0 3 2.3 1 4 3.3 0 5 4.6 1 6 6.5 1 오차의 제곱을 비용으로 정의하고, 비용을 전부 더하여 비용함수를 정의하였습니다. 이 비용함수를 최소화하는 계수를 찾으면 됩니다. 지난시간에 비용함수를 아래와 같이 설정했었습니다. $\begin{align} J(\beta_{0},\beta_{1})&=\sum_.. 2023. 7. 28.
[손으로 푸는 로지스틱 회귀분석] 4. 비용함수 (1) 오차제곱합을 쓰지 않는 이유 우리는 지난시간에 로지스틱 함수를 배웠습니다. $f(x)=\frac{1}{1+e^{-(\beta_{0}+\beta_{1}x)}}$ 이제 위 함수의 계수들을 정할 차례입니다. 우리가 가진 데이터를 가장 잘 표현할 수 있도록 계수들을 정해야 하는데요. 우리가 가진 데이터는 아래와 같습니다. 번호 공부시간 통과여부 1 1.5 0 2 1.8 0 3 2.3 1 4 3.3 0 5 4.6 1 6 6.5 1 우리가 하고 싶은 일은 위 데이터를 잘 표현하는 로지스틱 함수를 찾는 것입니다. 오차를 정의하고, 오차를 최소화하는 방식으로 로지스틱 함수를 찾을 것입니다. 오차는 실제값과 예측값의 차이입니다. 예를 들어 번호1의 오차를 $\varepsilon_{1}$이라고 한다면 $\varepsilon_{1}$ 은 아래와 같이 .. 2023. 7. 26.
[데이터분석] 정규화 방법들 (normalization) - 피처들의 스케일 차이가 크면 스케일이 큰 피처의 영향이 커짐. - 정규화는 피처의 스케일을 적당한 범위 내로 맞추는 작업을 말함. - 크게 네가지 방법이 있음. 1. 십진 스케일링 (Decimal Scaling) - 최댓값이 0과 1사이에 놓이도록 10의 n제곱으로 전체 데이터를 나눠줌. - 예시) {10000,20000,40000,60000,120000} 이 있다고 하면 최댓값인 120000을 0과 1사이에 놓이도록 $10^6$으로 데이터를 나눠줌. 데이터는 {0.01,0.02,0.04,0.06,0.12} 2. Z 점수 표준화 (Z-score normalization) - 아래 수식을 이용하여 표준화함 $Z=\frac{X-\mu_{x}}{\sigma_{x}}$ 3. 최대-최소 표준화 (Min-Max.. 2023. 6. 30.
[데이터분석] 스무싱 방법 (데이터 평활법) - 노이즈가 문제를 발생시키는 경우 노이즈의 영향을 최소화해야함. 노이즈를 줄이는 절차를 스무싱이라고 부름. - 스무싱 방법들을 알아보고자 함. 1. 구간의 평균을 이용한 스무싱 (smoothing with bin means) - 전체를 몇개의 구간으로 나누고, 각 구간의 값들을 각 구간의 평균값으로 대체함. - 예시) {1,3,5,8,9,15,18,21}을 두개의 구간 {1,3,5,8},{9,15,18,21} 으로 나눔. 각 구간의 평균은 4.25와 15.75이므로 이 값으로 대체함. {4.25,4.25,4.25,4.25,15.75,15.75,15.75,15.75} 로 스무싱됨. 2. 구간 경계값을 기주능로 한 스무싱 (smoothing with bin boundaries) - 각 구간의 양 끝값을 유.. 2023. 6. 30.
반응형