스포츠 분야에 관심이 많은 사람들을 위한 인공지능 입문서
교육분야에 '인공지능'이라는 키워드가 몰아치고 있다. 거대한 흐름이다. 교육부에서 강력하게 드라이브를 걸고 있는 사업 중 하나도 '인공지능 기반 디지털 교과서(A.I.D.T.: Artificial Intelligence Digital Textbook)' 활용 교육이다. 이를 위해서 교육부가 각 시도교육청으로 엄청난 규모의 예산을 교부하고 있는 중이다(이 바닥 전문용어로 ‘돈을 이 쪽으로 던진다’고 표현하기도 한다). 대한민국 17개 시도교육청은 어떻게든 학생들에게 교사들에게 학교현장에 도움이 되는 방법이 없을까 고민하고 또 고민하는 모습이다.
사실 대부분의 교육정책은 학교 현장의 교사들의 기대와는 다르게, 교육부는 큰 틀의 방향만 설정하는 일이 빈번하다. 디테일은 자율성에 맡기는 경우가 많은 것이다. '국가적 수준에서의 정책 방향은 강조하고 있지만 구체적인 디테일이 없다.'는 바로 이 지점에서 많은 장학사들이 어려움을 겪고 있다. 아직은 그 누구도 가지 않은 길이었기 때문에 사례를 통한 교육이나 매뉴얼을 만들어 낼 수가 없는 시점이다. 수 많은 워크숍과 연수 등을 가 보아도 인공지능의 개념을 이해하게 하는 내용이나 인사이트를 주기 위한 주제만 가득할 뿐, 현장의 교사들이 가장 궁금한 '무엇을 어떻게 하라는 것인가?'의 사례가 없는 상황이다. 교사들이 수업을 설계하기 위해 참고할만한 레퍼런스도 없고, 머리 속으로 그림을 그려보기 위해 도움이 될만한 자료들도 부족하다.
결국, 교육청에서 관련 업무를 수행하는 장학사들은 공부하면서 정책을 구체화할 수밖에 없다. 이 책은 이러한 맥락에서 읽게 된 책이다. 큰 기대감은 없지만 혹시나 하는 마음에 책을 폈는데, 이 책이야 말로 현장의 체육 수업 담당 교사들에게 딱 필요한 책이 아닌가 싶었다. 특히나, 단순히 인공지능을 활용하는 방법을 알려주는 수준을 넘어, 빅데이터를 처리하는 방법을 어떻게 설계할 것인지를 고민하게 해주는 부분이 인상적이었다. 기본적인 개념부터 구체적인 실습 매뉴얼까지 체육 분야 전문가가 쓴 책이라는 것이 자연스럽게 느껴진다. 인공지능 전문가가 쓴 책이 아니라, 체육 분야 전문가가 인공지능을 공부하여 쓴 책이 확실했다.
이 책은 어렵게만 다가오는 '인공지능'이라는 주제를 스포츠 분야의 지식을 토대로 이해하기 쉽게 설명한다. 예를 들면, 저자는 '지능이란 차이를 인지하는 능력'으로 정의하고 있는데, 체조선수 양학선이 구사하는 기술 중 '양1'과 '양2'를 구분하기 위해서는 기계체조 지능이 필요하다고 설명한다. 체조라는 종목의 전문가가 아니면 체조의 기술을 구분해내기 어려운 것이 당연한데, 컴퓨터에게 수 많은 데이터를 반복적으로 학습하게 하여 이것을 식별하는 능력을 갖추게 할 수 있다고 하였다. 즉, ‘지능을 인위적으로 만들어낼 수 있다’는 이야기를 스포츠 분야에 몸담고 있는 사람들, 학교체육 전문가들의 시각에서 이해하기 쉽게 사례를 제시하며 설명한다. 이 책에서 설명하고 있는 주요 내용을 요약해보면 다음과 같다.
1장 인공지능과 스포츠 분석
인공지능은 스포츠 분야에서 다양하게 활용된다. 첫째, '퍼포먼스 분석'이다. 인공지능 기술을 적용하여 선수들의 움직임, 기술의 성공 여부, 경기 수행시간 등을 분석할 수 있다. 어떤 선수가 어떤 환경에서 자신의 최대 퍼포먼스를 끌어낼 수 있는지에 대한 패턴을 질적 및 양적 데이터로부터 찾아낸다. 예를 들면, 야구 경기에서 투수의 피칭과 관련하여 구종, 공의 궤적, 회전율, 구속, 스핀 비율 등의 데이터를 통해 경기력 향상에 도움을 줄 수 있다.
둘째, '팀 전략 최적화'다. 축구, 농구, 핸드볼 등 단체종목은 포메이션, 공격 또는 수비 전술 등의 선택이 매우 중요한데, 인공지능 기술을 활용하여 상대 팀 전술을 예측하고 이에 대응하는 우리 팀 최적의 전술을 발굴한다. 예를 들면, 인공지능을 통해서 축구 경기에서 포메이션, 선수의 위치, 패스 및 드리블 경로, 슈팅 등의 데이터를 수집하여 패턴을 찾아낼 수 있다. 이를 조합하여 분석함으로써 특정 상황에서 더 효과적인 선택은 무엇인지 추론할 수 있는 것이다.
셋째, '경기 결과 예측과 승률 분석'이다. 인공지능 기술은 과거의 경기 결과와 팀 경기력에서 나타나는 패턴을 확인하여 미래의 경기 결과를 예측하고, 특정 팀의 승률을 분석하기도 한다. 이를 통해 경기 결과에 대한 예상치를 도출하고, 팀의 전력을 분석하는데 도움을 준다. 예를 들면, 과거의 경기 결과를 종합하여 과거 전적, 개별 선수의 경기력, 경기장 특성, 상대 기록, 부상선수 유무 등에 따라 특정 팀과 경기에서의 예상 승률을 추론할 수 있는 것이다.
넷째, '부상 예방과 선수 건강 관리'다. 선수들의 생체 신호와 건강 데이터를 인공지능으로 모니터링하여 부상 가능성을 사전에 예측하고 선수들의 건강 상태를 관리할 수 있다. 이를 통해 선수들이 최적의 경기력을 유지하고, 부상 위험을 최소화하는 것이 가능하다.
[참고] 스포츠 데이터의 수집과 활용 시 윤리적 고려사항
1. 개인정보보호
2. 공정성 및 중립성 유지
3. 사회적 영향 평가
4. 데이터 정확성과 신뢰성 보장
5. 투명성 유지
6. 데이터 활용의 한계 설정
7. 데이터 보안 강화
8. 데이터 소유권과 권리 규정
2장 파이썬 환경 설정 및 기본 문법
'파이썬(Python)'이라는 코딩 언어를 설치하고, '비주얼 스튜디오 코드(Visual Studio Code)'라는 코드 에디터를 설치하여 파이썬 코딩을 하는 방법을 알려주는 매뉴얼이다. 각종 라이브러리를 설치하는 방법도 알려주고 있다. 파이썬의 기본 문법도 몇 가지 유형으로 안내하고 있다. 나는 이 책의 저자 박재현 교수님의 강의를 들은 적이 있기에, 코딩은 인공지능 ChatGPT에 맡길 예정이다. 따라서, 이 부분은 매뉴얼 그 이상의 의미를 가지고 따라하지는 않았다. 이게 무슨 이야기인지는 ChatGPT에 원하는 결과를 도출하기 위한 파이썬 코드를 만들어 달라는 요청을 해 보면 즉시 이해할 수 있다.
3장 인공지능의 이해
인공지능의 개념, 인공지능의 역사, 데이터와 인공지능 알고리즘, 스포츠에서 인공지능 활용 사례 등을 이해하기 쉽게 설명해주는 챕터다. 인공지능의 개념과 역사에 대한 일반적인 지식은 이 책이 아니더라도 충분히 얻을 수 있다. 개인적으로는 이 책의 전체적인 내용 중 핵심을 꼽으라면 지금부터 요약하는 '스포츠 분야 빅데이터와 인공지능 알고리즘'과 관련한 내용을 선정하고 싶다. 스포츠 분야에서 인공지능을 활용하기 위한 설계 과정을 스포츠 분야의 사례를 통해 이해하기 쉽게 설명하고 있기 때문이다.
[ 스포츠 분야 빅데이터와 인공지능 알고리즘 ]
이 책의 저자는 '체육측정평가' 즉 '통계학'을 전공하는 체육대학 교수다. 본인의 전공 분야를 기반으로 인공지능이라는 주제에 관심을 가지고 연구를 이어왔다. 그렇기 때문에, 스포츠 분야에서 빅데이터를 어떻게 활용할 수 있는지와 관련된 전문성을 쌓게 된 것으로 보인다. 저자는 인공지능을 적용하여 데이터를 처리함으로써 해결할 수 있는 문제들의 유형을 다음과 같이 정리하였다.
첫째, '정보 검색'이다. 선수 정보, 경기 결과, 팀 통계 등 필요한 정보를 인공지능 알고리즘에 의해 쉽게 찾을 수 있도록 모델을 구축하여, 스포츠 팬 또는 스포츠애널리스트 등에게 큰 도움을 줄 수 있다. 스포츠 정보 검색 시스템은 다음의 절차를 통하여 인공지능 알고리즘을 구현할 수 있다.
[ 스포츠 분야 '정보 검색' 인공지능 알고리즘 구현 절차 ]
1. 데이터 수집 및 정제: 스포츠 관련 데이터를 수집하고 정제해야 한다. 스포츠 경기와 관련된 정량적 또는 정성적 데이터를 모두 포함하여야 한다. 이 단계는 인공지능 알고리즘의 성능과 직접 연결되기 때문에 매우 중요하다.
2. 데이터 색인화: 수집한 데이터를 적절한 형식으로 저장하고 색인화해야 한다. 이를 통해 검색 속도를 높일 수 있다. 데이터베이스를 활용하여 데이터를 저장하고 관리할 수 있다.
3. 자연어 처리 기술 적용: 사용자의 검색어가 자연어로 주어지면, 자연어 처리 기술을 사용하여 검색어를 이해하고 의미를 추출해야 한다. 이를 통해 검색 질문 사용자의 의도에 따라 정확한 검색결과를 도출할 수 있다.
4. 검색 쿼리 생성: 사용자의 질문에 대하여 적절한 검색 쿼리를 생성한다. 예를 들어, '2023년 NBA MVP는 누구인가요?'라는 질문에 대하여 검색 쿼리(query: 데이터베이스에 원하는 정보를 요청하는 문장)를 생성한다.
5. 검색결과 제공: 생성된 검색 쿼리를 데이터 색인화된 정보와 비교하여 가장 적합한 결과를 찾아 사용자에게 제공한다. 이 때는 높은 정확성과 빠른 검색 속도를 보장해야 하며, 검색 결과를 효과적으로 출력해야 한다. 예를 들면, 선수 통계, 경기 기록 등을 시각적으로 제공하여 사용자가 원하는 정보를 빠르게 파악할 수 있도록 하는 것이다.
둘째, '최적화(optimization)' 문제다. 예를 들면, 축구 또는 농구와 같은 팀 스포츠에서 승리하기 위해 어떤 전략을 채택해야 하는지를 찾아낼 수 있다. 선수 로테이션 최적화, 훈련 계획 최적화, 선수 스카우팅 최적화 등 스포츠 분야에서 경기력을 향상시키는데 활용할 수 있다는 것이다. 스포츠 분야의 최적화 문제는 다음의 절차를 통하여 인공지능 알고리즘을 구현할 수 있다.
[ 스포츠 분야 '최적화' 인공지능 알고리즘 구현 절차 ]
1. 문제 정의: 최적화 문제를 명확하게 정의한다. 어떤 조건에서 어떤 목적을 최대화한다거나 최소화하는 문제를 다룬다. 특정 선수의 성적을 최적화한다거나 팀의 전술을 최적화하는 등으로 다양하게 문제를 정의할 수 있다.
2. 변수 정의: 문제에 부합해 최적화해야 할 변수를 정의한다. 변수들은 조작 가능한 값들이어야 하고, 최적화 과정에서 조정되는 대상변수이기도 하다. 스포츠분야에서는 선수들의 출전시간, 심폐지구력 능력 등이 변수가 될 수 있다.
3. 목적함수 정의: 최적화 문제의 목적을 수학적 함수로 정의한다. 이 함수는 변수들의 조합에 따라 최대화하거나 또는 최소화해야 할 값이다. 예를 들면, 스포츠 경기에서 승리 수를 목적 함수로 설정하였다면 승리 수가 최대가 되는 최적화된 변수 조합을 만들 수 있다.
4. 제약조건 확인: 최적화 과정에서 고려해야 할 제약조건이다. 제약조건은 문제의 현실적인 한계나 제한 사항을 반영하는 것이다. 예를 들면, 선수들이 가지고 있는 기본 능력 등을 반영하여 최적의 전략을 수립해야 한다.
5. 최적화 알고리즘 선택: 문제에 따라 적절한 최적화 알고리즘을 선택한다. 이 알고리즘은 목적함수와 제약조건 등을 고려하여 최적의 변수 조합을 찾아낸다.
6. 최적화 수행 및 결과해석: 선택한 최적화 알고리즘을 실행하여 목적함수를 최대화하거나 최소화하는 최적의 변수 조합을 찾는다. 최적화 결과를 해석하여 실제로 어떤 의미가 있는지를 파악한다. 이 결과를 활용하여 스포츠 팀의 전략을 조정하거나 선수의 훈련 계획을 최적화할 수 있다.
셋째, '예측(Regression), 분류(Classification), 군집화(Clustering)' 문제다. 예를 들면, 선수들의 능력과 플레이 스타일을 기반으로 특정 선수가 어떤 포지션에 가장 적합할지를 예측하여 선수 포지션을 배정할 수 있다. 스포츠 영재를 발굴하여 미래 우수선수로 성장해 나갈 수 있는지를 예측하는 분야에도 적용 가능하다.
스포츠 분야 예측, 분류, 군집화 인공지능 알고리즘 구현 절차는 다음과 같다.
[ 스포츠 분야 '예측, 분류, 군집화' 인공지능 알고리즘 구현 절차 ]
1. 데이터 수집 및 전처리: 예측, 분류, 군집화와 관련된 데이터를 수집하고 필요한 전처리 작업을 수행한다. 선수의 체격 관련 데이터, 경기 수행 관련 데이터 등 매우 다양할 수 있다.
2. 특성 추출(결과변수): 예측, 분류, 군집화에 필요한 특성을 추출하거나 선택한다. 무엇을 예측, 분류, 군집화할 것인가에 대한 결과 변수로서 특성을 의미한다.
3. 데이터 분할: 예측, 분류, 군집화를 위하여 수집된 데이터를 훈련 데이터와 테스트 데이터로 나눈다. 모델을 훈련하고 검증하는데 필요한 작업이다.
4. 예측 및 분류 모델 선택: 예측, 분류, 군집화를 위한 적절한 모델을 선택한다. 회귀분석, 신경망분석, 의사결정 트리, K-Means 등의 모델을 선택할 수 있다.
5. 모델 훈련: 선택한 모델을 훈련 데이터에 적합하도록 학습시킨다. 모델을 데이터의 패턴을 학습하여 데이터를 예측하는데 적용하거나, 분류 또는 군집화하기 위한 결정을 내린다.
6. 모델 검증 및 결과 평가: 훈련된 모델을 사용하여 테스트 데이터를 적용하여 예측, 분류, 군집화 작업을 수행한다. 훈련 데이터로 개발된 모델이 얼마나 좋은 성능을 가졌는지를 검증하는 단계다. 예측, 분류, 군집화 모델의 정확도, 정밀도, 재현율 등을 사용하여 모델의 성능을 평가한다.
이러한 기본적인 개념을 바탕으로, 스포츠 분야에서는 실제로 다양한 목적으로 인공지능 알고리즘을 설계하여 활용하고 있다. 예를 들면, 'Bepro11' 서비스는 영상을 기반으로 인공지능 알고리즘 분석을 통하여 축구 선수들의 슈팅, 패스, 크로스, 태클, 인터셉트 등과 같은 특정 행위와 움직임 거리, 스프린트 횟수 등의 데이터를 자동으로 수집하여 훈련계획 또는 전술수립에 활용할 수 있다. 인공지능 기반 호크아이 시스템을 이용하여 보다 정확한 심판 판정이 가능하기도 하며, 최근에는 축구 경기에서 오프사이드 판정에 인공지능을 도입하여 심판의 오심을 줄여 공정성을 확보하는데 좋은 성과를 거두고 있다.
경기의 내적인 요소 외에도 스포츠 경기 외적인 스포츠 문화적 요소에서도 인공지능 알고리즘은 유용하게 활용할 수 있다. 예를 들면, 전세계에서 베팅이 이루어지는 배당금을 모니터링하여 이상 시그널이 발생하는 경우 집중 분석하여, 승부조작이 발생할 가능성이 높은 경기를 예측하여 주의 알람을 제공할 수 있다. 선수들이 의사로부터 받은 처방전을 인공지능 시스템이 인식하여 금지약물 여부를 판단해 줄 수도 있고, 스포츠 중계 화면 광고 노출 정도를 정확하게 분석하여 광고 대행사에게 중요한 정보를 제공하는 것도 가능하다. 다양한 부분에서 인간의 노동력을 극적으로 감소시킬 수 있는 것이다.
4장 스포츠 분석을 위한 기초 통계
이 책에서는 통계학적인 배경지식이 없는 스포츠 분야 전문가들도 데이터 분석을 이해할 수 있도록 기초적인 통계학 개념들을 간단하게 정리하고 있다. 인상적인 부분은 어떤 통계학적 개념을 추상적으로 이해시키기 위해 설명을 조금이라도 더 잘 하려는데 집중하기보다는, 이 책의 전체적인 맥락인 파이썬 언어의 예제를 통해 '그 개념은 바로 이 것 때문에 필요하다.'는 형태로 제시하는 방식이다. 이를 통해, 통계학적 지식을 100% 이해하지 못하더라도, 이 책의 나머지 부분을 이해할 수 있도록 구성하고 있다. 나 역시 이 부분은 30%도 이해하지 못했지만, 파이썬 예제 실습 등을 통해서 '잘 모르겠지만, 뭐 이런 의미구나' 정도로 넘어갈 수 있었다.
5장 인공지능 딥러닝 작동 원리
이 챕터는 정말 어려운 개념을 설명하고 있다. 지금도 이게 무슨소리인지는 잘 모르겠다. 그래도 저자가 친절하게 그림을 몇 개 제시해 준 덕에 '이런 느낌인가?' 하는 정도는 이해했다고 정신승리를 할 수 있었다. 내가 이해하고 있는 것이 맞는지 확신하기 어렵지만, 대강 '어떤 정보가 입력되면 인공 뉴런에서 활성함수에 따라 판단을 하여 정보를 출력하는데 이를 '인공신경망'이라 하며, 딥러닝이란 이 과정을 계속 반복하여 데이터를 학습하면 인공신공망이 더욱 정교해지면서 그 정확성을 높이는 것.' 정도로 이해하였다.
나는 인공신경망에서의 신호 연결과 인공신경망의 오차 교정과 관련된 내용은 두 번 세 번을 봐도 이해가 잘 안되어 일단 넘어갔다. 스트레스를 받지 말고 필요한 수준에서 적절한 이해만 갖추어도 충분하리라는 정신승리를 하며 다음 챕터로 이동하였다.
6장 인공지능 딥러닝 실전
이 부분은 파이썬 언어로 현실 데이터를 활용하여 원하는 결과를 얻어내는 본격적인 실습이다. 손글씨 이미지를 텍스트로 인식하여 변환해주는 예제를 통해 지금까지 설명했던 내용들이 어떻게 구현되는지를 경험할 수 있다. 바로 직전 챕터와 마찬가지 맥락에서 내가 파이썬 문법을 다 암기하여 처음부터 코딩을 하는 것은 의미가 없다는 판단이 전제가 되어있기 때문에, 이 부분은 무엇을 전달하고자 하는 것인지 저자의 의도를 느끼는 수준에서 넘어갔다.
7장 신체 데이터 활용 체형분류 예제
6장의 손글씨 인식 인공지능 코딩 실습은 스포츠 분야의 사례는 아니다. 7장에서는 본격적으로 스포츠 분야에서 활용할 수 있는 인공지능의 사례를 실습한다. 성별, 신장, 체중, 지방량, 근육량 데이터를 활용하여 인공지능이 체형(배엽)을 분류해주는 서비스를 만들어 보는 과정이다. 일단, 책을 통해서도 저자가 무슨 의도로 이 내용을 넣었는지는 이해할 수 있기에 실습은 하지 않고 넘어갔다.
8장 배당률 데이터 활용 이상 베팅 식별 예제
저자가 실제로 개발했던 '스포츠 승부조작 위험 정도 모니터링 시스템'을 실습해보는 내용이다. 나는 실습 내용보다는 스포츠 승부조작의 개념을 이해하기 위한 설명에 더 눈이 갔다. 승부조작을 '조직형, 관계형, 생계형, 목표형'으로 유형을 분리할 수 있다는 이론을 처음 알았다. 각 유형별 승부조작의 특성에 대한 이해를 바탕으로 승부조작을 모니터링 할 수 있는 딥러닝 모델 학습을 설계하는 과정이 인상적이었다. 6장과 7장과 구성이 비슷한 것을 보면, 저자는 나름의 패턴을 완성하고 있는 듯하다. 어떤 주제라도, 인공지능으로 데이터를 분석하는 시스템을 설계할 수 있는 것이다. 저자의 역량과 안목이 부러웠다.
9장 이미지 데이터 활용 체조 동작 평가 예제
이번 장은 스포츠 분야에서 가장 활용성이 큰 정보인 이미지(사진)을 분석하는 인공지능을 설계하는 실습이다. 이번 장은 학교 현장의 체육 교사들에게 그 유용성이 매우 크다. 왜냐하면, 파이썬 코딩이 아닌 이미 개발되어 널리 활용되고 있는 '구글 티쳐블 머신(Google Teacherable Machine)'의 활용방법을 안내하고 있기 때문이다. 학생이 특정한 동작을 정확하게 수행하고 있는지를 판단해주는 인공지능을 손쉽게 만들어 수업에 활용할 수 있는 방법을 구체적으로 안내하는 매뉴얼이라고 할 수 있다.
10장 스포츠 AI 딥러닝 모델 평가
이 챕터는 저자가 중요하다고 강조하는 내용이다. 하지만, 통계학적 지식과 수학적 사고력이 부족한 나는 무슨 소리인지 거의 이해하지 못했다. 인공지능이 작동하여 결과물을 제시했을 때, 그 결과물을 믿을 수 있는가에 대한 검증 방법을 설명하고 있는 중이라는 것만 느끼는 정도였다. 잘 이해가 되지 않기에, 저자의 문장을 가능한 그대로 옮겨적어 보면 다음과 같다.
인공지능 딥러닝 모델을 만들었다면 모델의 성능을 평가하는 '성능평가(performance evalution)' 과정이 필수적으로 이루어져야 한다. 좋은 딥러닝 모델은 학습된 데이터에 잘 맞는 것은 당연하고, 현실세계에서 처음 보는 데이터에도 잘 맞는 모델이어야 하기 때문이다. 일반적으로 딥러닝 모델의 성능평가는 정확도(accuracy), 재현율(recall), 정밀도(percision), F1 점수 등의 지표들을 사용해서 측정한다.
정확도(accuracy)는 인공지능 딥러닝 모델 성능평가의 가장 기본적인 지표다. 모델이 이진 분류(두 개의 범주 분류) 또는 다중 분류의 작업을 얼마나 정확하게 수행하는지에 대한 성능지표다. 전체 데이터 중에서 예측값이 실제값과 얼마나 일치하는 정도라고 정의할 수 있다.
재현율(recall)은 실제 양성에 대하여 모형이 양성으로 예측하는 비율을 의미한다. 예를 들면, 코로나 검사의 양성 환자를 대상으로 한 검사에서 코로나 양성환자라고 정확하게 예측하는 비율이다. 실제 양성을 얼마나 양성으로 잘 재현해내는지를 평가한다고 하여 재현율 또는 민감도라고 부르기도 한다.
정밀도(percision)는 양성으로 예측한 사례 중에서 실제 양성인 사례의 비율을 나타낸다. 재현율은 실제 양성의 사례를 나타내는 가로 행, 정밀도는 예측된 양성의 사례를 나타내는 세로 열에서 각각 양성의 비율을 계산할 수 있다는 점에서 차이를 확인할 수 있다. 솔직히 나는 무슨 이야기인지 개념을 지금도 이해하지 못하겠다.
특이도(specificity)는 음성에 관한 판단 지표다. 실제 음성을 얼마나 음성으로 잘 예측했는지를 나타낸다. 즉, 실제 코로나가 아닌 음성에 대하여 모델이 음성이라고 얼마나 잘 예측하는지를 보여주는 척도다. 실제 음성을 양성으로 잘못 판단하는 것에서 나타나는 심각한 문제를 특이도 지표를 통해 확인할 수 있다.
F1 점수는 각 범주 간에 데이터 간 불균형이 나타나는 경우 사용할 수 있는 지표로, 재현율과 정밀도를 조합해 만든 값이다. 정밀도와 재현율 사이의 균형을 조정하는데 사용되며, 두 지표 중 하나를 강조할 수도 있다.
과적합(overfitting) - 모델이 학습 데이터에 너무 맞추어져 있어 이전에 본적이 없는 새로운 데이터에 대하여 성능이 저하되는 현상. 타당도 측면에서 보면 일반화의 문제. 딥러닝 알고리즘이 최적의 답을 찾을 때까지 반복해서 계산하는 데 따른 필연적 문제.
1. 학습 및 검증 데이터의 성능 비교
모델을 학습할 때 사용한 학습 데이터와는 별도의 검증 데이터를 사용하여 성능을 비교한다. 모델이 학습데이터에서는 높은 성능을 보이지만, 검증 데이터에서 성능이 저조하면 과적합의 가능성이 크다고 판단한다. 일반적으로 학습 데이터와 검증 데이터 간의 성능 차이가 큰 경우 과적합일 가능성이 증가한다.
2. 학습 곡선과 검증 곡선
학습 데이터에서 나타나는 학습 곡선과 검증 데이터에서 나타나는 검증 곡선은 학습 횟수 증가에 따른 모델의 성능을 시각적으로 나타낸다. 과적합된 모델은 학습 곡선에서는 좋은 성능을 보이지만 검증 곡선에서는 학습 곡선의 성능 향상 패턴과는 다르게 어느 수준에서 성능이 떨어진다. 따라서 두 곡선 사이의 간격이 크면 과적합 가능성이 크다고 판단한다.
3. 데이터 교차 검증
여러 개의 데이터 세트를 구성하여 데이터 폴더를 만들고 교차 검증을 통해 모델의 일반화 성능을 평가함으로써 과적합을 탐지할 수 있다. 모델이 교차 검증을 시행한 결과, 각 폴더에서 일관된 성능을 나타내면 해당의 모델의 과적합의 가능성이 작다고 판단한다.
두 세 번 반복하여 읽어봐도 잘 모르겠는 부분은 계속 모르겠다. 하지만, 인공지능 알고리즘의 기본적인 개념이나 작동방식을 어렴풋이는 이해하게 된 느낌이다. 학교 현장의 체육 교사라면 꼭 한 번 읽어보라고 추천하고 싶을 정도로, 체육 전공자의 눈높이에 맞게 내용을 설명하려고 저자가 애를 썼다. 실제로, 저자의 의도대로 체육 전공자의 입장에서 다른 책보다 훨씬 이해하기 쉬웠다.
사실, 일전에 이와 비슷한 맥락에서 출간된 '친절한 스포츠 데이터 R'과 '모두의 R 데이터분석'이라는 책을 구입하여 읽다가 포기한 적이 있었다. 뭔가, 실제적이고 전문적인 스포츠 데이터 분석을 하는 것은 이해가 되지만, 아무리 예제를 중심으로 설명한다고 해도 R이라는 언어에 대한 전문성이 부족하니 도저히 이해가 되지 않았다.
반면에 이 책이 좋게 다가왔던 점은 파이썬이라는 언어를 완벽하게 이해하지 않아도 괜찮다는 저자의 신호가 느껴졌기 때문이다. 이 책의 저자인 박재현 교수님의 빅데이터 실습 강의에서도 ChatGPT를 통해서 원하는 파이썬 코드를 얻을 수 있다는 '경험'만을 제공하는 모습이었다. 실제로 해보니, 내가 모든 파이썬 코드를 알지 못해도 ChatGPT에 원하는 코드를 얻을 수 있는 문장을 잘 입력하는 것만으로도 파이썬 코드를 통째로 얻는 것이 가능했다. 말 그대로 신세계라고 할 수 있었다. 이게 무슨 이야기인가 하면, 다음의 그림처럼 질문만 잘 해도 충분하다는 이야기다.
https://chatgpt.com/share/b7798e98-8d48-4731-9853-88f21cbbd1f1
모든 사람이 파이썬 코딩의 전문가가 되는 것은 불가능하기도 하지만, 불필요하고 비효율적인 일이라고 생각한다. 어떤 분야의 전문가에게 필요한 역량은 '빅데이터를 어떻게 축적하고 어떻게 활용할 것인지에 대한 안목'이라고 생각한다. 이 책이 바로 체육 분야 전문가들에게 조금의 영감이라도 줄 수 있는 책이라는 생각이 들었다. 파이썬 언어를 배우고 싶지만 배우기 싫다는 이중적인 부분이 있었는데, 이 부분도 인공지능의 도움을 받으면 스트레스를 받을 필요가 없다는 사실을 깨우칠 수 있었다는 것도 이 책과 저자와의 만남을 통해 깨달은 점이다. 더 많은 역량 있는 체육 교사들이 인공지능을 잘 활용하여 수업의 질을 발전시켜 나갈 수 있을 것이라는 기대감이 커진다.