정보) 컴퓨터공학과 과목 맛보기 - 3. 인공지능(2)
게시글 주소: https://m.orbi.kr/00066248853
1편에서는 어떤 내용을 배우나 살펴봤고
2편에서는 실제로 나왔던 과제에 대해 간단히 살펴보겠습니다.
------------------------------------------------
아무래도 인공지능에 대해 처음 공부하는 학생들이 많은 만큼,
간단한 분류 모델을 만들어보는 것이 과제였습니다.
이것도 3년 전에 했던 과제였던 만큼 지금 보면 많이 뒤쳐진 걸 수도 있습니다.
Chest X-ray Image가 모여있는 Dataset을
Bacterial Pneumonia / Viral Pneumonia / Normal으로 분류하는 게 미션입니다.
(이런 사진이 모여 있다고 생각하시면 됩니다.)
저도 왜 저게 저렇게 분류되는지는 모릅니다.
아마 의대 다니면 알게 되겠죠..
학습을 시킬 때는 균형 잡힌 학습이 중요합니다.
우리가 수능 공부를 할 때도 수1, 수2, 선택 과목 모두 골고루 하지 않습니까?
이 친구도 각 분류를 고루 학습해야 분류도 잘 할 수 있습니다.
과제에서 주어진 데이터셋을 까보니까 왼쪽처럼 불균형하더군요.
그래서 데이터가 적은 쪽의 사진을 좌/우를 반전시켜서 뻥튀기를 해줬습니다.
그리고 학습 시키기 전에 X-ray 사진의 크기를 통일해줍니다.
전부 제각각이면 이거로 학습을 할 수가 없거든요.
인공지능 학습에서는 알고리즘을 선택하는 것도 중요하지만
위와 같은 데이터 전처리(Preprocess) 과정도 중요합니다.
보통 이런 이미지 관련 문제는 CNN으로 해결합니다.
CNN은 진짜 간단히 말하면 사진에서 특징을 뽑아내서 학습을 하는 알고리즘입니다.
근데 전 CNN 말고 다른 건 없을까 싶더라고요. 도대체 무슨 깡이었는지
관련해서 논문을 읽다가 이런 걸 발견해서 한번 써봤습니다.
간단히 말하면 위에 CNN 구조에서 맨 마지막 단계인 FC Layer 대신에
다른 지도 학습 알고리즘을 갖다 쓴다는 내용입니다.
이렇게 해봤더니 정확도가 87.48% 나왔네요.
나쁘지는 않은데, 별로 좋지도 않은 결과가 나왔습니다.
역시 안 쓰는 이유가
그 다음으로는 그냥 CNN 써봤습니다.
저는 RTX 3060이라는 좋지도 나쁘지도 않은 그래픽카드를 사용 중이라서
그렇게 성능이 좋고, 구조가 복잡한 모델로 학습을 시키지는 못 했습니다.
그냥 간단한 ResNet이라는 모델을 갖다 사용해봤습니다.
NN에서는 Layer가 깊어질 수록 여러 역효과가 나타나는데,
Residual Block이라는 것을 통해 문제를 해결한 모델입니다.
이게 거의 10년 다 되어가니까.. 진짜 오래 된 모델이긴 합니다.
원래 그냥 만들어진 거 갖다 쓰면 되긴 한데 연습도 할 겸 그냥 만들어봤습니다.
학습을 진행할 때마다 Loss는 줄고, Accuracy는 증가하는 걸 볼 수 있습니다.
Loss는 정답에서 얼마나 벗어났는 지를 보여주는 지표라고 보시면 됩니다.
값이 작을 수록 좋겠죠?
2023학년도 수능 국어 '최소제곱법' 지문 아시죠?
인공지능의 학습이란 간단히 말해 이 '편차 제곱', 즉 Loss를 줄여나가는 거라고 보시면 됩니다.
(물론 손실 함수에는 Mean Squared Error 말고도 많이 있습니다.)
정확도가 93.11% 나왔군요.
ResNet 중에서도 제일 간단한 ResNet18을 갖다 써봤는데도 많이 올랐네요.
------------------------------------------------
이 과제는 진짜 처음 인공지능을 배우는 학생들에게
인공지능이 무엇인지 공부해보라는 취지로 내준 과제라고 생각이 듭니다.
이 과제하면서 의료 AI와 같은 쪽에 관심을 갖게 되었고
원래는 복학하면 관련 랩실에 들어가 볼까 했었는데
요런거 연구하는.. 홈페이지 (링크)
어쩌다 보니 의대에 와있군요.
역시 AI보다는 Domain Knowledge를 배우는게
영상이 제 성격에도 딱 맞을 거 같은데 초인기과이다 보니.. 쉽지 않겠죠
아무튼 오늘 글은 여기까지고요.
나중에 시간 날 때 다시 돌아오겠습니다.
제가 적은 글 (클릭하면 연결)
3. 컴퓨터공학과 과목 맛보기 - 2. 시스템프로그래밍(1)
4. 컴퓨터공학과 과목 맛보기 - 2. 시스템프로그래밍(2)
(현재 글) 6. 컴퓨터공학과 과목 맛보기 - 3. 인공지능(2)
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
쓱 그림만 훑어봤는데 어질어질하네요
머신러닝 장점: 코딩한 노력에 비해 결과가 간지나서 뽕찬다
단…점? 데이터 구하고 전처리가 빡센데 안하면 결과가 간지나지 않는다
그니까 사이버춘식이를 만든다는거죠?
Convolution 맛있다
3060 ㄱㅁ
ㅇㅇㄱ
내년부터는요 저랑요! 의학공부를요! 같이해요!