엔트리와 함께하는 인공지능 교실 > Chapter 11. 피지컬 활용 인공지능 모델(햄스터)

[Session 02] 감정에 따라 움직이는 햄스터봇 (텍스트 분류)

 감정에 따라 움직이는 햄스터봇 (텍스트 분류)

우리는 하루를 살아가면서 다양한 말을 주고 받는다. 어떤 말은 우리를 기쁘게 하고, 또 어떤 말은 우리를 슬프게 한다. 다른 사람의 말로 기분이 좋아질 때도 있고, 의기소침해지기도 한다. 이처럼 우리는 일상 생활에서 다양한 언어를 통해 의사소통을 하며 감정을 주고 받고, 이러한 상황에서 기쁨, 슬픔, 분노, 좌절과 같은 복잡한 감정을 경험한다. 이처럼 감정을 느끼는 것은 인간만이 갖는 가장 큰 특징 중 하나이다. 인간의 감정 언어 표현을 인공지능을 통해 학습시키면 감정에 따라 움직이는 햄스터봇을 만들 수 있다. 엔트리의 텍스트 모델 인공지능 학습 기능을 활용해서 기쁨이나 슬픔과 같은 감정을 인식하고, 이에 따라 움직이는 햄스터봇을 만들어 보자.


학습 목표 

감정을 인식하는 텍스트 분류 모델을 엔트리로 구현하고 이를 햄스터봇과 연동하여 감정에 따라 움직이는 햄스터봇을 제작할 수 있다.

학습 준비물

햄스터봇 (햄스터봇S로도 실습가능)

데이터 수집 아이디어


▲ #감정인식, #텍스트 인식, #지도학습, #춤추는 햄스터봇, #기쁨과 슬픔



 2-1 엔트리로 인공지능 텍스트 모델 학습하기

감정에 따라 움직이는 햄스터봇을 만들기 위해서 언어 표현에서 기쁨이나 슬픔과 같은 감정을 인식할 수 있어야 한다. 이를 위해서 엔트리의 인공지능 텍스트 모델 학습 기능을 이용해서 감정을 학습할 것이다. 사용자가 텍스트 형식으로 감정이 담긴 언어를 입력하면 인공지능 모델에서 기쁨인지, 슬픔인지 결과를 알려주고 이를 바탕으로 햄스터봇이 움직이도록 구성하였다.


1) 엔트리 홈페이지(https://playentry.org)에서 “작품 만들기”를 선택하거나 엔트리 오프라인 프로그램을 실행한다. “교과형 만들기”를 선택하면 인공지능 블록이 나타나지 않으므로, 반드시 “작품 만들기”를 선택하도록 한다.


2)  블록 모음을 선택하고, 를 선택한다. 모델 학습을 하려면 반드시 엔트리에 로그인을 해야 한다.


※Tip

만약 회원이 아니라면 엔트리 화면 위쪽 회원가입을 눌러 가입한다.

  


3) 학습할 모델 선택하기 화면이 나타나면 ‘분류:텍스트’를 선택한 후 를 누르면 ‘텍스트 모델 학습하기’ 화면이 나타난다. 텍스트 모델 학습은 데이터 입력 → 학습 → 결과 활용의 3단계를 거쳐 이루어진다.

  

  


4) 학습할 모델 선택하기 화면이 나타나면 ‘분류:텍스트’를 선택한 후 를 누르면 ‘텍스트 모델 학습하기’ 화면이 나타난다. 텍스트 모델 학습은 데이터 입력 → 학습 → 결과 활용의 3단계를 거쳐 이루어진다.


 

5) 각각의 클래스를 누르면 학습시키려 하는 개념에 해당하는 자료(데이터)를 입력할 수 있다. 예를 들어 ‘기쁨’이라는 감정을 학습시키기 위해서 ‘클래스1:기쁨’ 에 우리가 기쁨을 느끼는 말인 “반갑습니다, 사랑합니다, 고마워요…” 등을 입력하면 된다. 그러면 인공지능 모델은 이를 학습해서 비슷한 말인 “사랑해”도 기쁨이라는 감정으로 분류하게 된다.

텍스트 모델 학습에서는 글자만 입력할 수 있고, 여러 개의 자료는 쉼표로 구분해서 입력할 수 있다. 최소 5개의 자료를 입력해야 학습을 시작할 수 있다. 정확한 자료가 많을수록 인공지능의 인식률이 높아진다. 자료를 입력할 때는 단어의 어미 변화를 고려해서 다양하게 입력하면 더욱 좋다. 예를 들어 ‘환영합니다’라는 단어는 환영해, 환영한다, 환영하고, 환영, 환영해요 등으로 입력한다.


※Tip

나의 슬픔을 표현하는 말(예:슬퍼)을 학습시키는 것이지 남을 슬프게 하는 말(혐오, 차별, 폭언)을 학습시키는 것이 아님을 강조한다. 학생들이 장난스럽게 혐오, 차별, 폭언 등을 적지 않도록 정보통신윤리교육 및 인공지능 윤리와 연관지어 지도한다. - 관련기사 : 국립국어원 AI데이터에도 ‘혐오·차별 발언’ (한국경제 기사) https://www.hankyung.com/society/article/202101156377i


 

 6) 를 누르면 지금까지 입력한 자료를 기반으로 인공지능 모델을 학습한다. 학습이 끝나면 아래에 ‘학습을 완료했습니다’라는 글이 나타난다.


7) 결과 화면에서 글자를 입력하면 학습 결과를 확인할 수 있다. 예를 들어 ‘사랑해’라고 입력하면 약 77%의 확률로 기쁨으로 인식하고, ‘눈물난다’라고 입력하면 약 76%의 확률로 슬픔으로 인식한다.


 

8) 결과 화면에서 글자를 입력하면 학습 결과를 확인할 수 있다. 예를 들어 ‘사랑해’라고 입력하면 약 77%의 확률로 기쁨으로 인식하고, ‘눈물난다’라고 입력하면 약 76%의 확률로 슬픔으로 인식한다.


9) 모델 학습이 끝나면 화면 아래쪽을 누른다. 성공적으로 학습이 되었다면 블록 모음의 에 오른쪽 그림과 같은 ‘분류:텍스트 모델’ 블록이 만들어진다.

 



 2-2 엔트리로 인공지능 감정 인식하기

인공지능 모델 학습이 끝나면 이 모델의 명령 블록을 이용해서 엔트리에서 감정 인식을 할 수 있도록 명령 블록을 조립해 프로그래밍을 한다.

 
 

 1) 엔트리의 기본 명령블록 중에서  아래 부분은 필요가 없으므로 화면 오른쪽 아래 휴지통 부분으로 끌어다 옮겨 지운다. 

 

2)  블록모음의   블록을 조립해서 붙이고, ‘안녕’부분을 ‘오늘 기분이 어때요?’ 라고 고친다.

 



 

3)  블록모음에서  블록을 조립한다. 엔트리’ 부분에  블록모음의  블록을 넣는다. 이렇게 하면 사용자가 입력한 대답을 ‘감정 인식’ 모델을 이용해 분류하게 된다.


 

4)  블록모음에서  블록을 2개 조립해서 붙인다. 각각 ‘기쁨’, ‘슬픔’을 인식한 상황을 만든다.


 

 5)  블록모음에서  블록을 위쪽의 에,  블록은 아래쪽의 에 넣는다.

※Tip 

조립을 할 때 왼쪽 블록 끝 부분을 기준으로 맞춘다.

 


 

 6)  블록모음에서  블록을 가져와서 ‘기쁨’과 ‘슬픔’ 분류결과 블록에 넣고 말하는 시간을 1~2초로 조절한다. 기쁨과 슬픔의 상황에 맞게 내용을 입력한다.


7)  블록모음에서  블록을 가져와  아래에 끼워넣고, 전체 블록을 계속 반복하기 내부에 넣어 전체 내용을 계속 반복하도록 만든다.


 

 

 8) 왼쪽 위  (시작하기)를 눌러서 실행하고 결과를 확인한다. 내가 입력한 감정 표현을 인공지능이 기쁨과 슬픔으로 제대로 인식하고 표현하는지 확인한다.

※Tip 

여기까지는 햄스터봇 없이도 텍스트 모델 학습을 수행할 수 있다.




 2-3 햄스터봇으로 감정 표현하기

엔트리에서 감정 인식을 할 수 있도록 프로그래밍을 하고 나면, 햄스터봇으로 감정을 표현하는 부분을 만들 수 있다. 햄스터봇에 달려 있는 DC모터와 LED, 스피커 등의 출력 장치를 이용해서 감정을 표현한다.

1)  블록모음의 를 눌러 햄스터봇과 연결한다.

 

※Tip

연결에 문제가 있다면 앞장의 '엔트리 하드웨어 연결 설치하기'를 참조한다.


2) 햄스터봇을 제어할 수 있는 명령 블록이 나온다. 이 중에서 감정 표현을 위해 사용할 블록을 정한다. 이번 예제에서는 LED색, 소리, 햄스터봇의 움직임을 종합적으로 활용해서 햄스터봇의 감정을 표현한다. 감정 표현은 다양하게 조합해서 창의적으로 표현할 수 있다.


 

3) 분류결과 ‘기쁨’과 ‘슬픔’에 각각 해당하는 내용을 조합해서 넣는다. 기존에 확인용으로 넣었던  블록을 삭제한 후 해당 감정 내용을 넣는다. (삭제하지 않으면 햄스터봇과 말하기 화면으로 모두 확인할 수 있다.)

  

  

 ▲ <‘기쁨’ 감정일 때> 양쪽 LED 초록색, 왼쪽으로 2초 돌기, 딩동댕(도미솔) 음악 재생

 ▲ <‘슬픔’ 감정일 때> 양쪽 LED 빨간색, 뒤로 1초 이동, 경고(시시) 음악 재생


 

4) 감정을 표현한 후에도 LED가 꺼지지 않고 계속 켜져 있는 문제점이 있다. 분류 결과 블록 아래에 명령을 넣어 감정 표현 후에는 LED를 끈다.

 

5) (시작하기)를 눌러 프로그램을 실행해서 엔트리봇이 감정 표현에 따라 작동하는지 확인한다.

  

  

 ▲ ‘기쁨’ 감정 동작화면

 ▲ ‘슬픔’ 감정 동작화면


6) 최종 결과 프로그램