엔트리와 함께하는 인공지능 교실 > Chapter 10. 피지컬 활용 인공지능 모델(코블)

[Session 01] 인공지능 에어컨(텍스트 분류)

 인공지능 에어컨(텍스트 분류)

"에어컨 켜!", "불 켜!" 등의 명령어로 조작하는 기기는 과거에도 있었다. 하지만, 정확한 명령어, 발음으로만 작동하는 한계가 있었다. 이를테면 “에어컨 켜줘!”, “불 켜주세요.” 등으로 한 음절이라도 틀린 명령어는 인식이 되지 않았다. 사투리가 심한 사람의 명령어는 아예 인식하지 못하였다. 인공지능 학습을 통하여 유사한 명령어, 사투리 등을 인식하고 작동하는 기기를 만들 수 있을까? 에어컨을 단순히 켜고 끄는 것이 아니라, 사람의 감정적 언어를 이해하고 기기를 작동시켜주는 인공지능 모델을 만들어 보자.


학습 목표 

인공지능 텍스트 모델을 피지컬 교구에 접목하여 인공지능 에어컨을 구현할 수 있다.

학습 준비물

코블 교구: 메인보드, 온도센서, 선풍기, 숫자 전광판, 레고블록

데이터 수집 아이디어 

인공지능 에어컨에게 '더워!'라는 명령을 내리면 에어컨을 틀고, '추워'라는 명령을 내리면 에어컨을 꺼야 한다. '좋아'라면 현 상태를 유지해야 한다. '더워', '좋아', '추워'를 기준으로 데이터를 수집하기 위한 아이디어를 생각해보자.

 


 ▲ #온도센서, #선풍기, #텍스트 분류, #지도학습, #분류 학습, #인공지능 에어컨




 1-1 인공지능 예측 모델 학습하기

본 주제에서는 정형화되지 않은 명령어, 이를테면 사투리, 감정이 담긴 언어 등의 명령어를 알아듣는 인공지능 에어컨을 제작하고자 한다. 텍스트 형식으로 입력하면 학습된 엔트리의 인공지능 모델에서 결과를 알려 준다. 인식률이 70% 이상이 되는 클래스가 실행되도록 피지컬 도구인 코블의 명령어와 연결한다.

 

 1) 엔트리 프로그램에서 를 클릭하여 학습할 모델 선택하기 화면으로 들어간다. '분류:텍스트'를 선택한 후 를 클릭하여 텍스트 모델 학습하기로 들어간다.
 


2) 이름을 ‘인공지능 에어컨’으로 입력한다. 클래스 1은 ‘더워’ 클래스 2는 ‘좋아’ 클래스 3은 ‘추워’로 입력하여 텍스트 모델을 만든다. 대략적인 데이터를 입력하면 다음과 같다.


 

 

 3) 를 클릭하여 입력한 데이터와 조건으로 모델을 학습한다. 


 

4) 결과 화면에서 ‘아 추워’라고 입력하고 결과를 테스트한다. ‘아 추워’는 데이터 는 수집데이터에 입력되지 않은 것이다. 결과 화면은 인식율이 68.19%로 출력 되었다.


 

5) ‘으메 더운것!’이라고 사투리를 입력하였더니 원하는 결과가 나오지 않았다. 그래서 클래스 1에 ‘으메 더워’, ‘더운 것’이라고 데이터를 추가 입력한 후 모델을 재학습하였더니 ‘으메 더운 것’의 인식율이 79.63%로 향상되었다.


 

 6) 엔트리 블록 탭의 에 다음의 블록들이 생성되었는지 확인한다. 




 1-2 엔트리 화면과 오브젝트 구성

 

1) 엔트리 오브젝트를 다음과 같이 불러 왔다. 에서 ‘방(3)’ 에서 ‘소년(2)’, 

에서 ‘에어컨’, ‘온도계’를 배치 한다.


 

2) 방(2)의 에서 그림 편집의 형식을  벡터 형식으로 변경한다. 에어컨을 설치할 장소를 만들기 위해 창문을 옆으로 옮기고 메모창, 사진을 옮긴다. 빈공간에 에어컨을 두고, 온도계를 설치한다.


 

3) 전체 화면을 다음과 같이 옮기고 크기를 조절한 후 배치합니다.



온도계 오브젝트 구성하기


 

1) 온도계 오브젝트의 모양탭에서 복제를 클릭하여 ‘온도계_상’, ‘온도계_중’, ‘온도계_하’로 3개의 모양을 만든다. 온도를 좀 더 정밀하게 표시하고 싶으면 온도계 오브젝트를 더 추가하는 것도 좋다.


 

2) 엔트리 그림판에서 온도계를 상, 중, 하의 3가지로 만든다. 그림 형식을 비트맵으로 바꾼 후 온도계 게이지에 윤곽선 굵기를 ‘10’으로 맞춘 후 온도를 ‘상’, ‘중’, ‘하’의 높이로 맞추어 그었다.



 1-3 코블 블록 구성하기


 

 

1) 를 클릭하여 를 한다. 운영체제에 맞게 프로그램을 다운로드 후 설치한다. 


 

2) 엔트리 하드웨어 프로그램을 실행하고 을 선택한 후 를 한다. 


 

3) 코블 하드웨어를 연결하고 엔트리를 실행한다.


 

4) 코블과 엔트리가 연결되면 다음과 같이 블록이 생성된 것을 확인할 수 있다.


 

5) 코블의 온도 센서를 메인보드 센서1에 꽂는다.


 

6) 코블의 메인보드에 팬을 ‘회전모터1’에 연결한다. 숫자전광판을 코블의 ‘숫자전광판 4핀’에 연결한다.



 1-4 엔트리 블록 코딩하기

 오브젝트 코딩하기

코블의 온도 센서에서 측정되는 온도값에 따라 엔트리 화면상의 온도계가 다음과 같이 변하도록 한다.


 

1) 블록을 만들면 다음과 같다. 하드웨어의 는 코블의 센서1에 온도센서를 꽂은 것을 의미한다. 만약 센서2에 꽂으면 포트를 2로 맞추어야 한다.


 오브젝트 코딩하기

 

1) 코블의 온도센서값이 즉시 표시될 수 있도록 엔트리 오브젝트 글상자를 추가한다. 엔트리 오브젝트에서 글상자를 ‘온도’라는 이름으로 추가하여 온도계 위쪽에 배치한다.


2) 코블의 온도센서에서 불러들인 의 소수점 반올림값을 글상자에서 표시할 수 있도록 블록을 구성한다.


 


 오브젝트 코딩하기

에어컨을 인공지능 학습 모델의 블록을 활용하도록 한다.

 

 1) 를 클릭하여 ‘에어컨 세기’ 변수를 생성한다.엔터키를 입력하면 명령을 입력할 수 있도록한다.

 를 실행하여 데이터를 입력하도록 합니다. 분류결과가 ‘더워’면 에어컨 세기가 +1씩 늘어나고 ‘추워’이면 에어컨 세기가 –1만큼 줄어들도록 코딩한다.


 

 [실행하기]

1) 프로그램을 실행한 후, 엔터를 눌러 데이터를 입력한다.



2) 데이터 입력을 덥다는 내용을 많이 입력하면 코블 선풍기가 강하게 돌아가고, 춥다는 내용을 많이 입력하면 약하게 돌거나 꺼지는 것을 확인할 수 있다. 선풍기 바람을 온도계 쪽으로 향하게 하면 온도가 내려가는 것을 볼 수 있다.

3) 다음의 추가 내용을 넣어서 나만의 인공지능 냉난방기를 만들어 보자.

•프로젝트 화면에 난방기를 설치하여 추우면 난방기가 가동하도록 만들어 보자. •코블의 숫자전광판에 온도표시를 하자. •코블의 스위치를 두고 긴급한 상황에 모든 기계가 꺼지도록 하자.