의료 영상 데이터 분석 - 지도 학습의 종류와 인공지능 학습

인공지능이란 개념은 단순히 공학적인 의미만이 아닌 정치, 경제, 사회적인 함축적 의미를 포함하고 있습니다. 공학적으로 본다면 인공지능을 구현하는 방법을 또는 그 자체를 기계학습이라고 합니다. 이 기계학습의 여러 방법들 중 인간의 신경망을 모사하는 인공신경망 모델이 있습니다. 인공신경망 모델은 1943년 처음 제시된 이래로 두 번의 겨울을 겪게 됩니다. 첫 번째 겨울은 1969년 단층으로 구성된 인공신경망 모델이 단순한 X, Y과 같은 논리 현상도 모사할 수 없다는 사실이 MIT 민스키 교수로부터 밝혀져 시작되었고 이후 다층 인공신경망이 나오면서 다시 봄을 맞이할 수 있었습니다. 그러나 이 다층 모델도 1990년대와 2000년대 초반에 이르기까지 두 번째 인공지능 겨울을 불러오게 됩니다. 이때는 다른 기계학습 방법들이 더 좋은 성능을 보여주었기 때문입니다. 그 당시와 현재까지도 사용되고 있는 SVM, 랜덤 포레스트, 엑스 집 부스트 등을 다뤄보도록 하겠습니다.
지도 학습의 종류
지도 학습은 크게 회귀와 분류로 나뉠 수 있습니다. 이렇게 나누는 기준은 학습하게 될 모델이 어떤 값을 출력하느냐에 따른 것입니다. 연속적 값을 제시하는 것을 회귀라고 하고, 불연속 값을 내는 것을 분류라 할 수 있습니다. 예를 들어 자기 공명 영상을 통해 환자의 연령을 예측하는 모델을 만든다고 하면 이는 연령이라는 연속적인 값을 제시하게 되어 회귀 형태의 지도 학습이라 할 수 있습니다. 이와 달리 유방 영상에서 유방암 진단을 수행하는 모델은 분류 형태라 할 수 있습니다. 이러한 두 종류에 따라서 기계학습 모델이 학습을 수행하면서 성능을 평가하는 방법이 다릅니다. 본 강의에서 몇 가지 파라미터를 정의하도록 하겠습니다. m은 학습 데이터의 수, x는 모델의 입력 변수, y는 정답 레이블, xi, yi는 i번째 학습 데이터라고 합니다. 이를 이용하여 기계학습 모델을 수학적으로 표현해보면 h세타(x)라고 할 수 있습니다. 여기에서 세타는 모델의 인자라고 하고 학습 수행과정에서 점진적으로 개선되는 값들입니다. 회귀모델에서 가장 간단한 하나의 변수만을 사용한 선형 회귀분석을 통해 실제 학습이 어떻게 수행되는지 살펴보도록 합시다. 우선 모델에서 위의 수학적 정의들을 사용해 표현해보면 h세타(x) = 세타 0 + 세타 1x라고 할 수 있습니다. 이 수식을 보고 있으면 중학교 때 배웠던 직선의 방정식 y = ax +b가 떠오를 것입니다. 여기서 a는 세타 1을 의미하고 b는 세타 0을 의미합니다. 이 모델에서 학습이 수행됨에 따라 변하는 것은 세타 0과 세타 1입니다. 이제 성능을 수학적으로 계산하여 보도록 합시다. i번째 학습 데이터에 대한 오차는 h세타(xi) - yi임을 알 수 있습니다. 실제로 모델이 예측하는 값과 실제 정답 값과의 차가 됩니다. 이 오차는 음수 값과 양수 값이 나올 수 있으므로 그대로 합해서는 안 됩니다. 절댓값을 취하거나 제곱을 하여 더하는 것이 좋습니다. 이를 전체 학습 데이터에 대해 나타내 보면 아래와 같습니다. 수식 1, 2에서 보면 L로 표현한 것을 알 수 있습니다. 이 L은 손실 함수라고 하며 학습과정에서 이를 줄이는 방향으로 진행하게 됩니다. 성능값이라면 크면 클수록 좋겠지만 최적 값을 구할 때는 일반적으로 줄여나가는 방식으로 손실 함수를 정의하여 사용합니다. 왜냐면 공학자는 커져서 폭발하는 것보다는 줄이는 것을 더 선호합니다. 이 손실 함수는 딥러닝을 포함한 기계학습 전 분야에서 공통적으로 사용됩니다. 위의 1, 2 식 모두 많이 사용되나 일반적인 선형 회귀분석에서는 2가 많이 사용됩니다. 2번 식은 n개의 모든 데이터에서 모델의 예측값과 실제 정답과의 차이를 제곱을 하여 모두 더한 것입니다.
인공지능 학습에서의 손실함수, 학습률
손실 함수를 정의했다면, 이제 남은 것은 손실 함수가 가장 최솟값이 되는 모델의 인자인 세타 0과 세타 1을 찾는 것입니다. 어떻게 찾을 수 있을까요. 가장 쉽게 생각할 수 있는 방법은 모든 가능한 범위의 세타 0과 세타 1을 넣어 손실 함수를 모두 구한 후에 가장 낮은 값을 찾는 것입니다. 이 방법은 너무나 수행 시간이 오래 걸리며, 이로 인해 모델이 좀 더 복잡해져서 인자들이 많아질 경우에는 사용할 수가 없습니다. 더 좋은 방법이 없을까요. 네 있습니다. 기계학습 분야에서 가장 많이 사용되고 있으며 딥러닝과 같은 최신 방식에서도 동일하게 적용되는 방법이 경사 하강법입니다. 그림 1은 모든 세타 0과 세타 1에 따른 손실 함수를 이차원 표면으로부터 높이로 표현해 본 것입니다. 산맥과 같은 지형에서 보이듯이 높은 봉우리와 낮은 계곡, 그리고 언덕들이 잘 보입니다. 이렇게 모든 가능한 값들에서 손실 함수를 구했다면 가장 낮은 곳을 판단할 수 있습니다. 이를 전역 최적 값이라 합니다. 그러나 앞서 말했듯이 이러한 방식은 현실에서는 여러 가지 한계로 인해 불가능하며 보다 좋은 방법은 그림 1에서 표시된 아래쪽 방향으로 별표를 따라가며 낮은 지점을 찾아가는 방식입니다. 이를 간단한 절차식으로 표현해보면 아래와 같습니다. 첫 번째, 무작위로 설정된 세타 0과 세타 1에서 출발하여 각 위치에서 경사를 계산합니다. 두 번째, 계산된 경사 값에 의해 낮아지는 방향으로 한 발자국 전진해봅니다. 세 번째, 전진한 위치에서 다시 경사를 계산합니다. 네 번째, 2와 3을 계속 수행하여 더 이상 낮아지지 않으면 종료합니다. 위의 절차 식을 좀 더 수학적으로 표현해보면 우선 경사를 계산한다.라는 표현을 수학적으로 바꿔야 합니다. 이는 미분 값을 구한다.로 쉽게 변경할 수 있으며, 이렇게 계산된 미분 값은 기울기, 즉 경사 값이 증가하는 방향을 향하고 있어서 이와 반대되는 아래로 향하는 방향은 이 미분 값에 음수 기호를 붙이면 됩니다. 마지막으로 한 발자국 전진해본다. 는 이전의 세타 0과 세타 1 값을 이 미분 값에 음수 기호를 분인 것의 률 만큼 더하여 새로운 값으로 한다고 수학적으로 표현할 수 있습니다. 학습률이라고 하면 기계학습모델을 성공적으로 학습시키기 위해서 매우 중요한 값입니다. 이 경사 하강법은 초기 세타 0과 세타 1의 값에 따라 다른 결과를 나타낼 수 있으며, 이는 산맥의 지형도에 비유하여 살펴보면 처음 내가 서 있는 언덕에 가장 가까운 계곡으로 내려가는 것으로 바꿔 생각해볼 수 있습니다. 이를 전역 최적 값에 대비하여 지역 최적 값이라고 합니다. 지금 살펴보고 있는 선형 회귀분석과 같은 간단한 모델일 경우에는 이 전역 최적 값과 지역 최적 값이 일치합니다. 그러나 특히 딥러닝과 같은 복잡한 모델일 경우에는 전역 최적 값과 지역 최적 값이 일치하지 않으며, 지역 최적 값만을 찾을 수 있습니다. 오늘날 딥러닝 기술이 많은 분야에 적용되어 사용되는 것을 볼 때, 딥러닝을 통해 얻어지는 지역최적화만으로도 충분히 좋은 성능을 보여주는 것을 알 수 있습니다. 또한 경사 하강법은 그림 1에서 별표로 표시된 지점에서만 경사 값을 계산하기 때문에 계산 속도가 빠른 너무나 큰 장점이 있습니다. 그리고 경사 값을 계산할 때 오차의 제곱을 모두 더한 손실 함수를 사용할 경우 매우 편리합니다. 수학이 조금 어려울 수 있겠지만 아래와 같이 제시해볼 수 있습니다. 세타 0에 대한 경사 값은 수식 3을 통해, 세타 1의 경사 값은 수식 4를 통해 간단히 계산될 수 있습니다. 위 식에 따르면 전체 m개의 학습 데이터를 모두 넣어서 예측값인 h세타 x와 실제 레이블인 y값과의 차를 모두 더하면 세타 0에 대한 경사 값을 구할 수 있고, 세타 1에 대한 경사 값은 h세타 x와 실제 레이블인 y값과의 차에 입력 변수 x를 곱한 후 모두 더하여 얻을 수 있습니다. 이렇게 모든 학습 데이터를 사용하여 경사 값을 계산하는 경우를 배치 경사 하강법이라고 합니다. 그러나 학습 데이터의 크기 m이 너무나 크거나 혹은 모델이 딥러닝과 같이 복잡하여 예측값 h세타 x를 구하는 것이 느릴 경우에는 전체를 모두 이용하는 것이 매우 비효율적입니다. 그래서 매 경사 값을 계산할 때마다 작은 수의 학습 데이터를 이용하게 됩니다. 이런 경사 값 계산 방식을 미니 배치 경사 하강이라고 하며 거의 대부분에 딥러닝 모델 학습하는 데 사용됩니다. 딥러닝에서 사용하는 배치 크기는 이 미니 배치 경사 하강에서의 미니 배치의 크기를 나타냅니다. 다음으로 학습률에 대해 조금 더 살펴보도록 합시다. 그림 2는 학습률에 따른 최적 값을 찾는 과정을 보여주고 있습니다. 파란색으로 표시된 위치가 경사 하강법에 의해 경사 값을 계산하게 되는 지점입니다. 학습률이 적당하게 세팅되어 있으며 서서히 경사를 내려가게 되어 최적 값을 쉽게 찾을 수 있습니다만, 너무 큰 경우에는 위치가 너무나 크게 변화하게 되고 경사 값도 점점 커지게 되어 발산할 수 있습니다. 반대로 학습률이 너무 작은 경우에는 최적 값을 너무나 오래 걸려서 찾을 수 있습니다. 일반적으로 학습을 수행할 때는 높은 학습률에서 시작하여 손실 함수가 안정적으로 감소하는지를 살펴보고 아니라면 지수 형태로 감소시켜 나가는 전략이 주로 사용됩니다. 예를 들면 0. 1에서 시작하여 0.01, 0.005, 0.0001과 같이 변경시켜가며 안정적으로 학습되는 값을 찾게 됩니다.
'의료 인공지능 전망, 의료 영상 분석 방법, 의료 데이터 분석 기법' 카테고리의 다른 글
의료 영상 데이터 분석 기법 - 서포트 벡터 머신, 결정 트리, 랜덤 포레스트 모델 (0) | 2022.08.02 |
---|---|
의료 영상 데이터 분석 기법 - 로지스틱 모델 (0) | 2022.08.02 |
의료 영상 데이터 분석 기법 - CNN 구조와 특징 (0) | 2022.08.01 |
의료 데이터 분석 기법 - CNN 기반의 딥러닝 모델(Segmentation, Detection 모델) (0) | 2022.08.01 |
비정형 텍스트 분석 기법과 모델 (0) | 2022.08.01 |
댓글