• 검색 결과가 없습니다.

3. 인공지능 바탕과 문제해결3강. 인공지능 실현을 위한 프로그래밍 언어

N/A
N/A
Protected

Academic year: 2022

Share "3. 인공지능 바탕과 문제해결3강. 인공지능 실현을 위한 프로그래밍 언어"

Copied!
6
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

3. 인공지능 바탕과 문제해결

3강. 인공지능 실현을 위한 프로그래밍 언어

학습내용

- 인공지능 실현을 위한 프로그래밍 언어 - 인공지능 시대의 코딩

학습목표

- 인공지능 실현을 위한 주요 프로그래밍 언어들을 설명할 수 있다.

- 인공지능 시대의 코딩과 그 종류에 대해 설명할 수 있다.

1. 인공지능 실현을 위한 프로그래밍 언어 1) 인공지능용 프로그래밍 언어

- 프로그래밍 언어 : 인간과 컴퓨터 사이의 의사소통용 인공적인 언어 - 프로그램을 작성하기 위한 일종의 표기법

- Lisp / Prolog / Python

2) Lisp(List Processing) 가. Lisp의 등장과 기능

- 1960년 존 매카시에 의해 개발

- 기호 형태의 자료형을 주로 쉽게 처리

- 리스트(List)와 트리(Tree)형태로 자료구조 처리

- 두 번째로 오래된 고급 언어로 지금도 활용되고 있는 언어 - 대표적 함수형 언어

- 인공지능 관련 언어라는 인식이 강했으나 인공지능과 관련 없는 분야에서도 Lisp가 사용되면서 인식이 옅어짐

- 재귀함수, 쓰레기수집, 동적메모리 할당 등 함수형 대부분의 프로그래밍 언어에 영향

(2)

나. Lisp의 주요 특징

- 대화식으로 구성 된 인터프리터 방식의 언어 - 프로그램과 자료가 같은 형태로 취급

- Lisp기반 소프트웨어가 많이 개발되어 있어 활용도가 높음 - Lisp의 간단한 예

3) Prolog

가. Prolog의 등장과 기능

- 1972년 영국의 코왈스키와 프랑스 연구진이 개발 - 논리에 기반을 둔 인공지능용 프로그래밍 언어 - 자연어 처리나 전문가 시스템 개발에 유용 - 지식을 서술 논리로 표현하고 규칙에 따른 추론 나. Prolog의 주요 특징

- 사실(Fact), 규칙(Rule), 질문(Question)들로 구성 - 인터프리터 언어(대화식의 명령 방식으로 작동) - 사실과 규칙들의 데이터베이스로 구성

- 질문에 응답하는 형식 - 추론 엔진 사용

4) Python

- 인기 있는 프로그래밍 언어로 주목 - 코딩의 중요성이 강조되면서 사용자 증가 - 문법이 비교적 간단

- 인터프리터 언어

- 플랫폼 독립적 동적 타이핑 대화형 언어

(3)

2. 인공지능 시대의 코딩 1) 코딩을 통한 인공지능 접근

- 최근 직접 프로그래밍을 하는 코딩 열풍이 불고 있음

- 인공지능과 관련된 이론적 지식뿐만 아니라 간단한 프로그램을 통해 경험하는 것이 중요

- 인공지능에 대한 폭넓은 지식과 직관을 넓힘

- 코딩의 정의 : ‘실행 가능한 프로그램을 작성하는 일’

2) 코딩의 궁극적인 목표

- 주어진 문제를 제대로 해결하는 일 - 코딩하기 전 문제 해결을 위한 방법 구상 - 코딩을 마치고 컴퓨터로 실행시켜 문제 해결

3) 코딩의 중요성(유명 인사들의 코딩의 중요성 역설)

- 오바마 : “코딩 기술을 배우는 것이 여러분의 미래는 물론 조국의 미래에도 매 우 중요하다.”

- 빌 게이츠 : “13살 때 처음으로 코딩하는 방법을 배웠고, 이를 바탕으로 마이 크로소프트를 세웠다.”

- 스티브 잡스 : “이 나라 모든 사람들은 컴퓨터 프로그래밍 즉, 코딩을 배워야 한다. 코딩은 생각하는 방법을 가르쳐 주기 때문이다.”

4) 코딩의 주요 목적

- 인공지능 시대에는 코딩이 기초적이 필수적인 요소 - 코딩 과정을 통해 논리적 사고력 향상

- 문제 해결 과정에서 생각하는 힘을 기를 수 있음 - 창의적 발상과 지구력 향상

(4)

5) 코딩의 종류

가. 스크래치(Scratch)

- 2007년 미국 MIT에서 개발된 무료 소프트웨어

- 시각적 교육용 프로그래밍 언어(프로그래밍 초보자 대상) - 다양한 모양과 색깔 블록을 끌어서 조합

- 누구나 컴퓨터 프로그래밍의 개념을 쉽게 배울 수 있음 - 초보자들을 대상으로 코딩의 흥미 유발

- 직관적이며 간단한 사용법

[출처]스크래치(SCRATCH) / MIT

- 눈에 보이는 결과와 블록들 구성으로 되어있어 단순 드래그로 블록을 합치는 것으로 임의의 행동을 명령할 수 있음

나. 아두이노(Arduino)

- 2005년 이탈리아에서 개발

- 마이크로 보드와 같은 하드웨어를 조절하는 코딩 도구 - 다양한 제작물을 만드는 개방형 프로그램

- 아두이노 활용 분야로 움직이는 자동차 구현, 하드웨적 제어가 들어가는 부분 에 주로 활용

- 블루투스를 이용한 시리얼 통신 제어 다. 파이썬(Python)

- 1991년 로섬(Rossume)이 발표한 프로그래밍 언어 - 최근 인공지능 코딩에 많이 쓰이는 언어

(5)

- 인공지능의 확산으로 사용자 증가

6) 머신러닝을 위한 파이썬 패키지 가. Numpy

- 파이썬의 과학계산을 위한 기본적인 패키지 - 다차원 배열과 행렬 객체를 포함

- N-차원 배열, 선형 대수, 난수 생성 등의 함수 보유 나. matplotlib

- 자료를 차트(Chart)나 플롯(Plot)으로 시각화(Visualization)하는 패키지

- 라인 플롯, 바 차트, 파이 차트, 히스토그램, Box Plot 등 다양한 차트와 플롯 스타일 지원

다. scikit-learn

- 기계 학습 오픈 소스 패키지 - 예제 데이터 세트 제공

- 지도학습, 비지도학습, 모델 선택 및 평가, 데이터 변환에 활용

- 데이터 변환(학습 데이터와 테스터 데이터 분리) - Model 초기화 및 모델 학습

- 테스트 데이터를 통해 데이터 예측

(6)

평가하기

1. 다음 중 Prolog 프로그래밍 언어의 주요 특징이 아닌 것은?

① 사실, 규칙, 질문 들로 구성

② 추론 엔진 사용

③ 사실과 규칙들의 데이터베이스로 구성

④ 존 매카시에 의해 개발 - 정답 : ④번

해설 : 존 매카시는 Lisp언어를 개발하였으며 Prolog언어는 코왈스키가 개발하였음 2. 다음 중 코딩의 주요 목적과 거리가 먼 것은?

① 논리적 사고력의 향상

② 코딩을 통한 계산력의 향상

③ 문제 해결 과정에서 생각하는 힘 향상

④ 창의적 발상과 지구력 향상 - 정답 : ②번

해설 : 계산력은 수를 셈하는 능력이며 코딩의 주요 목적으로 보기 어려움

학습정리

1. 인공지능 실현을 위한 프로그래밍 언어

- 프로그래밍 언어란 인간과 컴퓨터 사이의 의사소통용 인공적인 언어 - 인공지능 개발 관련 대표적 언어 : Lisp, Prolog, Python, C, R 등

2. 인공지능 시대의 코딩

- 코딩을 통한 인공지능 접근으로 인공지능에 대한 지식과 직관을 넓힘 - 코딩의 궁극적인 목표는 주어진 문제를 제대로 해결하는 일

다음 주 예고

“4. 인공지능의 미래와 윤리” 에 대해 학습하겠습니다.

참조

관련 문서

입상자 과학기술정보통신부 인공지능 R&D 챌린지 특별상

표면의 대화문은 넓은 의미에서 완곡어법(mitigated speech)이라는 테두 리에 넣을 수 있다. 그런데 이러한 완곡어법이 드러내는 진정한 의미 값은 어느 특정 지역이 나

Golombek(1998)에서는 교사가 학생들의 영어 발음 관련 정확성과 유창 성 증진의 교육적 과제 수행에 있어서 ‘학생들의 발음 영역을 지나치게 강 조하지 말고,

○ 초중등 교육과정에 포함되어 있는 SW․AI의 원리와 개념을 이해함과 동시에 인 간과 기계가 공존하는데 토대가 되는 인공지능 윤리교육을 포함한 STEAM 교육

인공지능 교육은 2015 개정 교육과정에서 도입된 소프트웨어 교육의 연장선에 있는 것으로, 「초·중고 인공지능 교육 내용 기준」은 소프트웨어 교육을 기반으로 학교급

아이디어 스케치를 참고하고 인공지능 프로그램을 활용하여 디 자인을 완성한다 .... 우리가 만든

인공지능을 통한 예술 작품의 생성 과정을 설명할

마인드맵으로 실제적인 논리 프로세스를 경험한 다음 내가 만들고 싶은 인공지능 디자인을 알고리즘과 마인드맵으로 표현할 수 있다.. 웹 사이트를 활용하여 내가