인공지능 학습 자료 만들기

쉬운 도구를 사용하여 기계학습 모델을 만들어서  몸으로 제어 할 수있는 게임을 만드는 과정을 안내하는 수업 계획서입니다.

전제 조건 :

  • 사전 지식이 필요하지 않지만 스크래치, HTML 또는 Javascript에 대한 약간의 경험이 도움이 됩니다.
  • 웹 브라우저 사용 방법을 알고, 워드 처리(복사 및 붙여넣기, 텍스트 선택, 입력)가 필요합니다.

준비물:

  • 웹캠이 있는 노트북이나 컴퓨터가 필요합니다.
  • 이 프로그램은 크롬북에서 실행되지만 컴퓨터의 파워는 성능에 영향을 미치므로 크롬북과 같은 컴퓨터에서는 프레임 속도가 떨어질 수 있습니다.

목표:

  • 기계 학습과 기본 용어 이해
    • 기계 학습과 기존 알고리즘의 차이점
  • 학습 데이터가 알고리즘의 성능에 미치는 영향을 이해
  • 기계 학습이 응용 프로그램에서 입력으로 어떻게 사용될 수 있는지 이해
  • 경험 편집 코드 얻기

학생들을 위한 맞춤형 :

  • 학생들이 더 많은 시간을 활용할 수 있다면, 수업2에서  첫 번째 토론을 기준으로 2 개의 수업으로 나누세요.
  • 조금더 깊은 수업을 진행하려면 수업3을 원하는 만큼 반복하세요.

수업 1 기계 학습은 무엇인가?

준비물:

  • 웹캠이 있는 컴퓨터 1대와 모든 사람이 볼 수 있는 화면
  • 각 학생 또는 그룹을 위한 단어 워크 시트

목표:

  • 알고리즘이 무엇인지 이해하기
  • 기계 학습이 무엇인지 이해하기
  • “학습”이 무엇인지 이해하기
  • “데이터”가 무엇인지 이해하기
  • “클래스”가 무엇인지 이해하기
  • “모델”이 무엇인지 이해하기
  • 기계 학습 알고리즘이 기존 알고리즘과 어떻게 다른지 이해하기

개요:

  • 활동1: 강사는 로봇 역활을 하고 학생들은 쓰레기 조각을 집어 들도록 지시하지만 쓰레기를 버립니다.
    • 학생들은 2분 동안 지시사항을 적어둡니다.
    • 강사가 지시사항을 수행하는 동안 1-2명의 학생을 선택하여 읽게 합니다.
    • 강사는 그대로 지시를 따르고, 그러면 아마 재미있는 문제가 생길 것입니다! 불편하게 몸을 굽히거나 팔꿈치로 쓰레기를 움켜쥐는 같이  만약지시에 모호한 점이 있다면, 바보같은 짓을 하세요.
  • 토론: 그렇게 어려웠을까?
    • 로봇은 당신이 원하는 것을 정확히 말하지 않으면 아무것도 할 수 없기 때문입니다.
  • 활동2: 튜토리얼을 사용하세요.
    • 조금 오래되었지만 “가르칠 수 있는 기계”의 아이디어를 가장 잘 소개합니다.
  • 평가: 학생들은 단어 워크 시트에 유사점, 정의에 대해 씁니다.

수업2 – 무엇이 좋은 모델을 만드는가?

준비물:

  • 학생이나 그룹당 웹캠이 있는 컴퓨터

목표:

  • 학습 데이터의 차이가 기계 학습 알고리즘의 작동 어떻게 변화시킬지 이해합니다.
    • 더 많은 샘플이 더 좋습니다.
    • 샘플이 많을수록 좋으나, 다른 샘플보다 같은 클래스의 샘플이 좋습니다.
      • 예를 들어, 만약 여러분이 “손 들어 올린 모습” 클래스를 훈련시키려면, 여러분은 다른 얼굴 표정으로 시도하고 이리저리 움직여야 합니다. 그렇지 않으면 모델에서 이러한 차이가 클래스의 일부라고 생각할 수 있습니다. 즉 같은 얼굴 표정으로 손을 들고 있는 모습을 학습시키면 다른 표정의 모습은 다르게 판단할 수 있습니다.

개요:

  • 활동1: 초급 모델 만들기
    • 사이트로 이동하기
    • 적은 수의 샘플(10~20)로 “서있는 자세” 클래스의 이미지를 저장합니다.
    • 적은 수의 샘플(10~20)로 “뛰는 자세” 클래스의 이미지를 저장합니다.
    • 모델 링크를 복사하세요.
  • 활동2 : 서있는 학생의 샘플과 점프하는 학생으로 점프 게임을 합니다.
    • 점프 게임 열기
    • 로드 모델“을 클릭한 다음 모델의 코드를 붙여넣습니다.
    • 게임을 (2-3번) 해보고, 학생들에게 게임에 대한 피드백을 해달라고 요청합니다. 학생들이 통제하기 어렵다고 말하면, 다음 단계에서 통제하기 쉽게 만들 것이라고 말하세요.
  • 활동3: 앞의 단계를 반복하지만, 이번에는 이미지에 많은 변형이 있는 이미지(100-200)를 더 많이 사용합니다.
  • 토론: 왜 두번째가 더 쉬웠는지, 더 재미있었는지에 대해 우리는 어떤 이론들을 가지고 있는가? 어떻게 우리가 그 이론들을 시험할 수 있을까?
  • 활동4: 처음단계를 반복하지만, 이번에는 학생이나 학생 그룹이 자신 모델을 만듭니다.
  • 토론 : 어떤 게임이 재미 있거나 덜 재미있는 이유는 무엇입니까? 가장 높은 점수는 무엇입니까? 더 나은 방법을 만들기 위해 어떤 아이디어가 있습니까?
  • 활동5 (시간이 허락된다면) : 다른 학생들이 게임을 통제 할 수있는 지시 사항을 작성하고 지시 사항과 모델이 목표를 달성 할 수 있는지 확인하십시오. (예 : 지침에 “손을 들어 올리려면 점프”라고 말하지만 모델이 왼손잡이 만 인식하는 경우) a) 오른 손잡이를 인식하도록 모델을 수정하거나 b)보다 구체적으로 지침을 변경해야합니다.)
  • 활동 팁
    기본적으로 점프 스타터 게임은 웹캠이 손가락에 의해 가려지는지 여부를 감지하는 모델을 로드한다(이 모델은 테스트가 용이하기 때문에).

수업3- 게임을 리믹스하기

준비물:

  • 학생 또는 그룹당 웹캠이 있는 컴퓨터
  • 학생이나 그룹 리믹스 카드 세트

목표:

  • 기계 학습이 전체적으로 앱에 어떻게 적용되는지 이해하기
  • 경험 편집 코드 얻기

개요:

  • 토론 : Glitch 편집기를 소개하고 작동 방식을 설명하세요.
    • 글리치는 앱의 코드를 편집 할 수 있는 곳입니다.
    • 글리치는 앱에 액세스 할 수있는 URL을 만듭니다.
    • 앱의 사본을 쉽게 만들고 코드를 리믹스 할 수 있습니다.
  • 활동1 : 글리치 편집기에서 코드 살펴보기
  • 토론 : 리믹스 카드를 살펴보고 학생들이 하나를 선택하거나 자신의 것을 만들 수 있습니다.
  • 활동2 : 학생들은 리믹스 카드의 단계에 따라 게임을 자신의 버전으로 리믹스합니다.
    • 더 많은 장애물
    • 더 적은 장애물
    • 더 빠른 장애물
    • 더 높은 점프
    • 낮은 점프
    • 플레이어의 모양을 변경
    • 플레이어의 색상을 변경
    • 장애물 사이에 버퍼 추가
    • 더 나은 충돌 감지
  • 활동 팁
    • 학생들은 glitch에서 sketch.js 파일만 편집해야하며, 나머지는 페이지와 컨트롤러를 설정하기만 하면 됩니다.
    • 학생들이 복구할 수 없을 정도로 앱을 부숴버렸을 경우 모델을 다시 복사하여 처음부터 시작하도록 제안하세요.
    • 학생의 앱이 작동하지 않는 경우 다음 절차에 따라 작동하지 않는 항목을 확인하세요.
      1. 모델이 “가르칠 수 있는 머신”에서 두 클래스를 감지하는 데 제대로 작동하는지 확인하세요.
        1. 그래도 문제가 해결되지 않으면 클래스에 더 많은 샘플을 추가하고 모델을 다시 학습시키세요.
      2. 점핑 게임 스타터가 기본 모델 (손가락을 누르거나 누르지 않음)로 컴퓨터에서 작동하는지 확인하세요.
      3. 점핑 게임 스타터가 자신의 컴퓨터에서 사용자 정의 모델로 작동하는지 확인하세요.
      4. 리믹스 된 게임이 기본 모델에서 작동하는지 확인하세요(손가락을 누르거나 누르지 않음).
      5. 리믹스 된 게임이 사용자 정의 모델과 작동하는지 확인하세요.
  • 토론 : 게임에서 무엇을 바꾸었습니까? 게임을 더 재미 있거나 재미있게 만들 수 있었습니까? 컨트롤러를 수정하고 게임 코드를 수정하면 어떤 일을 할 수 있습니까?

수업4

목표:

  • 수업3을 반복하세요.

개요:

  • 활동1: 변화를 위해 많은 시간을 할애하세요.
  • 활동2: 학생들은 서로의 편집 내용을 테스트합니다.
  • 평가 : 학생들은 프로그램의 작동 방식을 설명합니다. 학생이 코드의 다른 부분이 어떻게 작동하는지와 함께 어떻게 작동하는지 설명 할 수 있다면 프로젝트에 대한 이해를 보여줍니다.

 

*용어 참고

  • 구글검색을 먼저 추천합니다.^^
  • 알고리즘이 무엇인지 이해하기
    • 알고리즘은 수학과 컴퓨터 과학, 언어학 또는 관련 분야에서 어떠한 문제를 해결하기 위해 정해진 일련의 절차나 방법을 공식화한 형태로 표현한 것을 말한다. (출처:위키백과)
    • 컴퓨터 프로그램은 정교한 알고리즘들의 집합이라고 간주할 수 있다. 수학이나 컴퓨터 과학에서 말하는 알고리즘은, 보통 반복되는 문제를 풀기 위한 작은 프로시저(진행절차)를 의미한다. 컴퓨터 시대 이후로는 알고리즘이라고 하면 컴퓨터를 통해 실행되는 것이라고 여겨지는 경향이 있으나, 사실 알고리즘 자체는 컴퓨터가 등장하기 이전부터도 존재했다. 즉, 사람이 수동으로 종이를 사용해 일정한 절차로 문제를 풀더라도 알고리즘에 해당한다. 다만, 컴퓨터의 등장과 함께 알고리즘 역시 급속도로 발전하게 된 것은 사실이다. (출처:나무위키)
    • 알고리즘이란 무엇이며, 왜 중요한가요?
    • 컴퓨터 알고리즘 기초 1강 컴퓨터 알고리즘 개요(1) | T아카데미
  • 기계 학습이 무엇인지 이해하기
    • 기계 학습(機械學習) 또는 머신 러닝(영어: machine learning)은 인공 지능의 한 분야로, 컴퓨터가 학습할 수 있도록 하는 알고리즘과 기술을 개발하는 분야를 말한다. 가령, 기계 학습을 통해서 수신한 이메일이 스팸인지 아닌지를 구분할 수 있도록 훈련할 수 있다. (출처:위키백과)
    • 기계 학습은 문제를 해결하기 위한 맞춤 코드(custom code)를 작성하지 않고도 일련의 데이터에 대해 무언가 흥미로운 것을 알려줄 수 있는 일반 알고리즘(generic algorithms)이 있다는 아이디어입니다. 코드를 작성하는 대신 데이터를 일반 알고리즘에 공급하면, 데이터를 기반으로 한 자체 로직이 만들어 지게 됩니다. (출처:기계 학습(Machine Learning, 머신 러닝)은 즐겁다! Part 1)
  • “학습”이 무엇인지 이해하기
  • “데이터”가 무엇인지 이해하기
  • “클래스”가 무엇인지 이해하기
  • “모델”이 무엇인지 이해하기
  • 기계 학습 알고리즘이 기존 알고리즘과 어떻게 다른지 이해하기

*기계 학습 과정

기계 학습을 시작하려면 카테고리(클래스)를 먼저 만들고 이것으로 학습을 시킵니다.

1. 이미지 데이터 모으기

먼저 클래스를 만들고 클래스 이름을  입력합니다. 아래 그림에서 클래스 이름은 “Me”, “Me and dog <3” 입니다. 학습 시킬 이미지 데이터는 웹캠 또는 이미지 업로드하여 만듭니다.

2.데이터 학습시키기

3.테스트 및 모델 보내기