프로그래밍/인공지능26 k겹 교차 검증 (k-fold cross validation) 전 글에선 모델의 성능을 검증해보았습니다. 학습을 최적화하기 위해 샘플을 학습셋 70%, 테스트셋 30%으로 나누었지만 이렇게 하면 30%의 샘플은 학습에 사용할 수 없다는 단점이 있습니다. 이를 해결하기 위한 방법이 k겹 교차 검증(k-fold cross validation) 입니다. 이것은 데이터셋을 여러 개로 나누어 하나씩 테스트셋으로 사용하고 나머지를 모두 합해서 학습셋으로 사용하는 방법입니다. 몇 겹인지에 따라 k의 수가 달라지는 것입니다. 이 방법으로 학습하면 모든 데이터가 학습셋이 되는 동시에 테스트셋이 될 수 있습니다. 갖고 있는 데이터의 활용성을 높이게 되는 것이죠 코딩을 해보겠습니다. k겹 교차 검증 코드에는 데이터를 학습셋과 테스트셋으로 몇 번 나누어서 실행할 것인지 정해주어야 하는데.. 2023. 7. 8. 모델 성능 검증 - 과적합(overfitting) 저번 글에서는 아이리스 품종을 예측해보는 모델 실습을 해보았습니다. 모델을 만들어보았으니 그 성능을 검증해보는 과정을 공부해보려 합니다. 여기서는 초음파 광물 예측 실험을 해보려고 합니다. import pandas as pd !git clone https://github.com/taehojo/data.git df = pd.read_csv('./data/sonar3.csv', header=None) 먼저 데이터를 불러오고 df.head() 데이터의 첫 5줄만 보면 이렇게 나옵니다. 마지막 열이 광물의 종류를 나타내고 일반 암석일 때 0, 광석일 때 1로 표현되었습니다. 1~60 열은 음파 주파수의 에너지를 0~1 값으로 나타냅니다. df[60].value_counts() 값들을 확인해주면 광석(1) 111.. 2023. 7. 3. 오차 역전파와 활성화 함수 이번글에서는 은닉층에 대해 좀 더 알아보려합니다. 이전 글들에 은닉층을 넣어서 딥러닝 모델을 만들고 그 은닉층안에서는 가중치가 부여되고 수정되는 과정, 즉, 가중치의 업데이트가 일어나는데 이 과정을 공부해보도록 하겠습니다. 단일 퍼셉트론에서는 경사하강법을 사용할 수 있습니다. 경사하강법은 저번 글에서 언급했듯이 임의의 가중치를 선언하고 결과값을 이용해 오차를 구한후 이 오차가 최소가 되는 지점으로 이동하는 것이었습니다. 그리고 이 오차가 최소가 되는 지점은 기울기가 0인 지점이었습니다. 그림을 보면 결과값을 실제값과 비교한 후 가중치를 수정하고 있습니다. 그렇다면 다층 퍼셉트론에서는 어떻게 해야할까요? 다층 퍼셉트론은 은닉층이 존재하기 때문에 두번의 경사하강법을 실행해야 합니다. 위의 그림처럼 결과값을 .. 2023. 6. 1. 다중 분류(multi classification) 다중 분류(multi classification)란 여러 개의 답 중 하나를 고르는 분류 문제 입니다. 타겟이 가지는 값 데이터 모임을 클래스(class)라고 하고 클래스가 3개 이상일 경우 다중 분류라고 합니다. 이항 분류는 클래스가 참, 거짓이기 때문에 0과 1로 분류할 수 있었지만 다중 분류는 그렇지 않기 때문에 원-핫 인코딩(one-hot encoding)이라는 것을 거쳐야 합니다. 원-핫 인코딩은 문자열로 표현된 클래스들을 0과 1로 이루어진 형태로 만드는 것입니다. 예를 들면 과학 과목에는 물리학, 화학, 생명과학, 지구과학인 4개의 클래스가 있고 문자로 표현된 값들을 원-핫 인코딩을 통해 바꿔주면 물리학=1000, 화학=0100, 생명과학=0010, 지구과학=0001 이 됩니다. 다중 분류에.. 2023. 5. 31. 퍼셉트론(Perceptron) 드디어 퍼셉트론에 들어섰습니다. 이번엔 퍼셉트론과 XOR 문제에 대해서 공부해보려합니다. 인공지능은 인공신경망(Artificial Neural Network)으로 이루어집니다. 그리고 이 인공신경망은 사람의 신경세포, 뉴런의 형태와 방식을 만든 모델입니다. 사람의 각 뉴런은 신경세포체와 축삭돌기 말단으로 연결되고 이부분을 시냅스라고 합니다. 가지돌기로 자극이 들어오고 그 자극이 역치를 넘을 시 활동전위가 발생하여 축삭돌기를 따라 흥분이 전도되고 연결된 다른 신경세포체에 전달됩니다. 이러한 뉴런의 흥분의 전도, 전달 방식을 본따 인공신경망을 만든 것입니다. 인공신경망은 인공뉴런, 퍼셉트론(Perceptron)으로 이루어져있습니다. 퍼셉트론은 이진 분류(Binary Classification) 모델을 학습하.. 2023. 5. 30. 로지스틱 회귀 맨 처음 글에서 딥러닝의 가장 말단에서 이루어지는 기본적인 두 가지 계산 원리에 선형 회귀와 로지스틱 회귀가 있다고 했는데 이번 글에서는 로지스틱 회귀를 써보려 합니다. 1. 개념 딥러닝에서 전달받은 정보의 참과 거짓을 판단해 다음 단계로 넘겨주는 과정이 끊임없이 일어나고 있습니다. 그리고 이 참과 거짓 중 하나를 판단하는 과정은 로지스틱 회귀(logistic regression)의 원리를 통해 이루어집니다. 앞선 글에서는 데이터들의 관계를 좌표에 나타내었을 때 선형 회귀를 사용했습니다. 하지만 로지스틱 회귀는 종속변수가 0, 1 뿐인 이진이고 보통 분류에 사용됩니다. 이런 그래프를 나타내게 되고 로지스틱 회귀는 선형회귀처럼 이러한 적절한 선을 그어주는 작업입니다. 위의 그래프는 S자 모양을 갖는 시그모.. 2023. 5. 17. 경사하강법 저번 글은 선형 회귀를 위한 최소제곱법에 대한 내용이었는데요 계속해서 선형 회귀를 이어나가보도록 하겠습니다. 이번엔 경사하강법을 공부해보려 합니다. 1. 개념 선형회귀는 임의의 직선을 그어 이에 대한 평균 제곱 오차를 구하고, 이 값을 가장 작게 만들어 주는 기울기 a값과 절편 b값을 찾는 작업입니다. 선형 회귀는 현상을 분석하는 한 방법이고 머신러닝은 이 분석 방법을 이용해 예측 모델을 만드는 것입니다. 두 분야에서의 용어가 약간 다르게 되죠. 선형 회귀에서의 함수 $y=ax+b$ 처럼 문제를 해결하기 위해 가정하는 식을 머신 러닝에선 가설 함수(hypothesis)라고 하고 $H(x)$로 표기합니다. 기울기 a는 가중치(weight)라 하고 $w$로 표기하며 y절편 b는 데이터 특성에 따라 부여되는 .. 2023. 5. 16. 선형회귀 - 최소 제곱법 인공지능에 대해 공부하려고 [모두의 딥러닝] - 조태호 라는 책으로 공부를 하고 있는데 오늘은 선형회귀의 최소 제곱을 확인해 보려고 합니다. 먼저 딥러닝이라는 것은 무엇일까요? 인공지능이라는 범위에 '머신러닝'이 있고 그에 일부분에 '딥러닝'이 있습니다. 머신러닝 (machine learning) : 규칙을 일일이 프로그래밍하지 않아도 자동으로 데이터에서 규칙을 학습하는 알고리즘을 연구하는 분야 딥러닝 (Deep learning) : 인공 신경망을 기반으로 한 방법들 - 혼자 공부하는 머신러닝 + 딥러닝 딥러닝은 인간의 사고방식을 기반으로 한 컴퓨터의 학습 알고리즘입니다. 딥러닝의 가장 말단에서 이루어지는 기본적인 두 가지 계산 원리인 '선형회귀'와 '로지스틱 회귀' 가 있고 이 글에선 '선형회귀'를 공.. 2023. 3. 23. 이전 1 2 3 다음