[Session 01] 인공지능 에어컨(텍스트 분류)
인공지능 에어컨(텍스트 분류)
"에어컨 켜!", "불 켜!" 등의 명령어로 조작하는 기기는 과거에도 있었다. 하지만, 정확한 명령어, 발음으로만 작동하는 한계가 있었다. 이를테면 “에어컨 켜줘!”, “불 켜주세요.” 등으로 한 음절이라도 틀린 명령어는 인식이 되지 않았다. 사투리가 심한 사람의 명령어는 아예 인식하지 못하였다. 인공지능 학습을 통하여 유사한 명령어, 사투리 등을 인식하고 작동하는 기기를 만들 수 있을까? 에어컨을 단순히 켜고 끄는 것이 아니라, 사람의 감정적 언어를 이해하고 기기를 작동시켜주는 인공지능 모델을 만들어 보자.
학습 목표
인공지능 텍스트 모델을 피지컬 교구에 접목하여 인공지능 에어컨을 구현할 수 있다.
학습 준비물
코블 교구: 메인보드, 온도센서, 선풍기, 숫자 전광판, 레고블록
데이터 수집 아이디어
인공지능 에어컨에게 '더워!'라는 명령을 내리면 에어컨을 틀고, '추워'라는 명령을 내리면 에어컨을 꺼야 한다. '좋아'라면 현 상태를 유지해야 한다. '더워', '좋아', '추워'를 기준으로 데이터를 수집하기 위한 아이디어를 생각해보자.
 ▲ #온도센서, #선풍기, #텍스트 분류, #지도학습, #분류 학습, #인공지능 에어컨
1-1 인공지능 예측 모델 학습하기
본 주제에서는 정형화되지 않은 명령어, 이를테면 사투리, 감정이 담긴 언어 등의 명령어를 알아듣는 인공지능 에어컨을 제작하고자 한다. 텍스트 형식으로 입력하면 학습된 엔트리의 인공지능 모델에서 결과를 알려 준다. 인식률이 70% 이상이 되는 클래스가 실행되도록 피지컬 도구인 코블의 명령어와 연결한다.
|   |  1) 엔트리 프로그램에서  | 
2) 이름을 ‘인공지능 에어컨’으로 입력한다. 클래스 1은 ‘더워’ 클래스 2는 ‘좋아’ 클래스 3은 ‘추워’로 입력하여 텍스트 모델을 만든다. 대략적인 데이터를 입력하면 다음과 같다.
 
|   |  3)  | 
|   | 4) 결과 화면에서 ‘아 추워’라고 입력하고 결과를 테스트한다. ‘아 추워’는 데이터 는 수집데이터에 입력되지 않은 것이다. 결과 화면은 인식율이 68.19%로 출력 되었다. | 
|   | 5) ‘으메 더운것!’이라고 사투리를 입력하였더니 원하는 결과가 나오지 않았다. 그래서 클래스 1에 ‘으메 더워’, ‘더운 것’이라고 데이터를 추가 입력한 후 모델을 재학습하였더니 ‘으메 더운 것’의 인식율이 79.63%로 향상되었다. | 
|   |  6) 엔트리 블록 탭의  | 
1-2 엔트리 화면과 오브젝트 구성
|   | 1) 엔트리 오브젝트를 다음과 같이 불러
왔다.
 
 | 
|   | 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) 프로그램을 실행한 후, 엔터를 눌러 데이터를 입력한다.
2) 데이터 입력을 덥다는 내용을 많이 입력하면 코블 선풍기가 강하게 돌아가고, 춥다는 내용을 많이 입력하면 약하게 돌거나 꺼지는 것을 확인할 수 있다. 선풍기 바람을 온도계 쪽으로 향하게 하면 온도가 내려가는 것을 볼 수 있다.
3) 다음의 추가 내용을 넣어서 나만의 인공지능 냉난방기를 만들어 보자.
| •프로젝트 화면에 난방기를 설치하여 추우면 난방기가 가동하도록 만들어 보자. •코블의 숫자전광판에 온도표시를 하자. •코블의 스위치를 두고 긴급한 상황에 모든 기계가 꺼지도록 하자. |