1-3-2. AI는 체격만 보고 체중을 추론할 수 있을까?
●데이터 살펴보기
국방부에서 공개한 병무청 신체검사 데이터
총 167,938명의 장병의 신체 치수를 측정하여 기록한 자료
가슴 둘레, 소매 길이, 신장, 허리 둘레, 샅높이, 머리 둘레, 발 길이
몸무게
각각의 피쳐와 Y값은 최댓값으로 나우어 0 부터 1사이의 소수로 노멀라이즈
●어떤 인공지능 사용?
신경망 구조
6층 짜리 FNN
층수 | 종류 | 크기 | 활성화 함수 |
1층 | FNN | 7 | 없음 |
2층 | FNN | 256 | ReLu |
3층 | FNN | 256 | ReLu |
4층 | FNN | 256 | ReLu |
5층 | FNN | 256 | ReLu |
6층 | FNN | 1 | sigmoid |
입력층은 7개의 피쳐를 사용하기 때문에 7
출력층은 몸무게를 예측하기 때문에 1
앞서 노멀라이즈를 통해 체중값을 0부터 1 사이 숫자로 변환.
출력층의 출력값 또한 0부터 1 사이 숫자가 되도록 sigmoid 함수를 활성화 함수로 적용.
2층부터 5층까지는 신경망크기가 256으로 통일
●딥러닝 코딩
인공신경망 제작
Sequential로 제작
인공신경망 컴파일
.compile(optimizer = "",metrics = [""], loss = "")
옵티마이저(optimizer) - Adam
메트릭(metrics) - mse
로스(loss) - mae
오차(error) - 실제 체중에서 인공지능이 예측한 체중을 뺀 수치
그런데 이 경우 오차가 음수가 될 수 있음. -> 음수 오차가 포함된 값을 평균을 내버리면 실제보다 오차가 적은 것으로 결과가 왜곡될 수 있음. -> 이런 문제를 방지하기 위해서 도입된 계산법이 mse, mae
제곱 오차(squared error) - 음수는 제곱하면 양수가 되므로, 오차의 크기를 모두 양수 범위로 만들기 위하여 오차를 제곱한 것
평균 제곱 오차(mean squared error) - 제곱 오차를 여러 개 구한 다음 평균을 구한 값
mse - 평균 제곱 오차(mean squared error)의 약자
mae - 오차의 절댓값들을 구해 평균을 구한 값
mse는 인공지능이 예측한 대량의 결과물을 손쉽게 하나의 점수로 수량화할 수 있다는 장점이 있음.
분류 문제에서 크로스 엔트로피를 주로 사용하듯, 회귀 문제에서는 대부분의 경우 mse를 사용하면 무난하게 인공지능을 제작할 수 있음.
●인공지능 학습
인공신경망 학습
fit 을 통해 학습
학습 결과 출력
그래프로 출력
model(dr.test_X) - 인공지능에 test_X를 입력
●인공지능 학습 결과 확인
인공지능 성능 확인하기
저자의 경우 21에포크에서 학습을 멈춤.
마지막 줄에 기재된 val_msa가 AI의 최종 성능.
저자의 경우 mae : 0.0253 97%이상의 정확도로 값을 예측할 수 있다는 것
나 같은 경우에도 24에포크에서 멈추고 mae의 경우도 0.0255로 비슷한 성능을 보임
학습 기록 확인하기
빨간 선이 train, 파란 선이 test
저자와는 조금 다르게 train의 성능과 test이 비슷한 느낌.
Regression Result의 경우, 회귀 결과를 통계적으로 표현한 그래프.
점들은 인공지능이 예측한 값과 실제 데이터 상이의 비율.
점들이 선 주위에 모여 있을수록 AI의 회귀 성능이 뛰어남.
선보다 아래쪽에 있으면 AI의 예측값이 실제값보다 낮은 것, 위쪽에 있으면 AI의 예측값이 실제값보다 높은 것
저자와 비슷하게 대부분의 점들이 선에 밀착하여 분포. -> 학습이 잘 된 것 같음.
점들이 아래에 분포 -> AI예측한 체중이 실제값도다 약간 작은 편.
※
외삽과 내삽
회귀에는 외삽과 내삽이 있음
X로 표시된 지점은 데이터가 확보된 지점.
머신러닝을 통해 ? 로 표시된 지점의 Y축 값을 예측하는 상황.
외삽 - 왼쪽 그림처럼 학습에 사용한 데이터의 바깥의 범위를 예측하기 위한 기법
과거와 현재의 데이터를 분석해 미래를 예측하려는 시도는 외삽으로 분류
내삽 - 오른쪽 그림처럼 학습에 사용된 데이터의 내부 범위를 예측하기 위한 기법
물음표가 위치한 곳의 데이터가 존재하지 않기 때문에 주변 데이터의 도움을 받아 값을 추론
주로 소실된 정보를 복원하기 위해 사용하며, 신호를 일부 생략하여 전송한 다음 수신자가 내삽을 통해 원본 신호를 복원하여 데이터 전송량을 압축하는 데 사용.
'@@@ 인공지능 > 수학·통계를 몰라도 이해할 수 있는 쉬운 딥러닝' 카테고리의 다른 글
1 - 4. FNN 활용하기(2) (0) | 2021.07.07 |
---|---|
1 - 4. FNN 활용하기(1) (0) | 2021.07.06 |
1 - 3. 회귀(Regression) 기법 활용하기(1) (0) | 2021.07.05 |
1 - 2. 분류(Classification) 기법 활용하기(2) (0) | 2021.07.05 |
1 - 2. 분류(Classification) 기법 활용하기(1) (0) | 2021.07.02 |