2020. 7. 10. 17:01

1. introduction

시스템?

: 주어진 인풋을 가지고 프로세싱 과정을 거쳐 가치를 창출하고 사용자가 원하는 의미있는 아웃풋을 만드는 것

 

시스템 제작시 정형화된 제작과정이 필요한 이유?

1. 무작정 만든 프로젝트는 대부분 실패한다.

2. 시스템을 만드는 것은 직관적인 것이 아니다.

3. 프로젝트는 늦어지고, 예산초과되거나 계획보다 적은 기능만 만들어지는 경우가 존재한다.

 

System Analyst, 시스템분석가? :

가치를 창출하기 위한 시스템 설계하는 사람

비즈니스 프로세스를 반드시 이해해야하는 사람

특정 스킬들이 요구되는 사람

업무를 분석하고 목표를 설정하고 개선시키고 아이디어를 구현하기 위한 정보 시스템을 설계함.

 

2. SDLC : Systems Developemnt Life Cycle

SDLC : 시스템의 퀄리티를 높이는 것을 목표하는 4단계 순환구조 형태의 시스템개발 생애주기

planning(기획) : 프로젝트 계획

analysis(분석) : 소프트웨어 가치창출을 위해 어떤 기능을 넣을 것인지 요구사항분석하여 결정

design(디자인) : 시스템 개발 작업의 기반이되는 설계도면 작성

implementation(구현) : 설계도면을 가지고 실제로 시스템 제작

 

SDLC process

프로세스는 4 phases로 구성 : planning -> analysis -> design -> implementation

각각의 phase는 여러 steps들로 구성

각각의 phase는 산출물이 존재 : deliverables(산출물)

phases들은 순차적, 증가적(결과물이 증가), 반복적(수정,보완반복->퀄리티향상)으로 실행됨

 

Deliverables(산출물)

기획 : 시스템 요구서, 현실성 분석, 작업 계획 보고서

분석 : 시스템 제안서

디자인 : 시스템 설계도면

구현 : 실제 시스템 소스코드, 유지보수 계획

 

 

3. SDLC Phases

Planning phase

> 시스템 요구사항, 기술실행 가능성, 경제적 이익 실현성, 사회적 통용가능성등을 파악하여 작업계획을 구성하고,

이를 적절한 개발기간동안 현재의 인적자원 상황에 맞게 적절히 배분하는 계획단계이다.

project initiation

시스템 요구사항확인

feasibility analysis(실효분석) 실행

1. technical feasibility : 기술적으로 구현가능한가

2. economic feasibility : 소프트웨어를 만들었을 때 얼마나 이익을 가져올 것인가

3. organizatoinal feasibility : 소프트웨어가 사회적으로 통용가능한가

project management

workplan 작성

staff the project : 인적자원의 보유기술, 프로젝트 참여현황 파악

프로젝트 진행현황 파악

 

Analysis Phase : 가치창출을 위해 소프트웨어를 분석하고 어떤 기능을 넣을지 결정하는 단계

develop an analysis strategy : 분석전략 수립

model the current system : 현재 시스템 파악하여 추보완점파악

formulate the new system : 새로 추가할 기능 파악

2. gather the requirements : 사용자/개발자/관계자들의 요구사항수집

develop a system concept : 시스템 컨셉정의

create a business model to represent : 비즈니스모델 정의

3. develop a system proposal : 시스템 제안서(산출물) 작성

 

Design phase : 시스템개발작업의 기반이되는 설계도면 작성

develop a design strategy : 설계전략수립

design architecture and interfaces : 시스템의 구조와 인터페이스 설계

develop databases and file specifications : 데이터베이스 및 파일형식 개발

develop the program design to specify : 프로그램설계 명시

 

Implementation phase : 설계도면을 가지고 실제로 구현하는 단계

construct the system

- 구현

- 테스트

install system

- 사용자 교육

3. 유지보수

 

4. SDLC Methodologies

정의 : SDLC를 구현하기 위한 정형화된 방법론

- 시스템 목적, 특징에 따라 적합하게 사용할 수 있는 여러가지 방법론이 존재한다.

1. Process oriented : input을 받아 output을 만드는 작업, 소프트웨어의 모듈, 프로세스에 초점을 둔 방법론

2. Data centered : 어떻게 가공하여 의미있는 데이터를 만들지와 같은 데이터에 초점을 둔 방법론

3. Object-oriented : 객체지향개념(객체, 객체의 메서드, 객체간 상호작용 등)을 적용한 방법론

4. Structured development : SDLCphases와 각 phasesteps들의 구조에 초점을 둔 방법론

5. Rapid actoin development : 빠른 개발 진행, 빠른 새 요구사항 대처등에 초점을 둔 방법론

 

Structured development

- Waterfall Development

- Parallel Development

 

Waterfall Development

- Planning -> Analysis -> Design -> Implementation 과정을 시간 순차적으로 진행하는 방법

- 전단계가 끝나고 다음단계로 넘어가면 다음단계에서 발견한 오류나 수정할 점을 전단계에 피드백하는 것이 아니라 해당단계에서 수정 보완을 해야 하는 특징이 있다.

장점 : 시스템 요구사항을 분명히 할 수 있다. 프로젝트 진행에서 요구사항의 변경이 최소화 된다

- 단점 : 디자인이 설계도면에 매우 세부적으로 명시되어야 한다. 시스템 제안부터 출시까지 긴 시간이 걸린다

 

Parallel Development

- Planning -> Analysis -> Design -> Implementation 과정 중 design 단계에서 여러 subproject들로 나뉘어 병렬적으로 프로젝트를 진행하고 각각의 subproject들의 implementation을 통합하는 방식

- 전단계가 끝나고 다음단계로 넘어가면 다음단계에서 발견한 오류나 수정할 점을 전단계에 피드백하는 것이 아니라 해당단계에서 수정 보완을 해야 하는 특징이 있다.

장점 : 스케줄시간이 감소된다. 재작업의 확률이 줄어든다

단점 : subproject들을 병합하는데 어려움이 있을 수 있다.

 

Rapid Action Development Methodology

- 빨리 개발과정을 진행하여, 빠르게 시스템을 완성하는 것을 목표로하는 방법론으로 요구사항이 자주변하거나, 출시날짜가 임박한 경우에 주로 적용된다.

1. Phased Development Methodolgy

2. Prototyping

3. Thoroway Prototyping

 

Phased Development Methodolgy

기능의 우선순위를 매겨 코어 기능을 탑재된 시스템을 우선적으로 만들어서 낮은 버전으로 출시하는 방법론

낮은 버전 출시이후 받은 피드백은 다음버전에 반영하여,다음 버전은 좀 더 다양한 기능들이 탑재되고 이전버전의 결점이 보완된 상태로 출시된다.

장점 : user가 시스템을 빨리 이용가능. user의 추가적인 요구를 다음버전에 반영가능

단점 : user가 이용하는 시스템은 불완전한 시스템

 

Prototyping

시스템(완제품) 만들기전 시스템프로토타입(반제품, system의 코어기능은 탑재되어 있지만 UI가 완벽하게 구현되지 않은 소프트웨어)을 미리 만드는 방법론

- 프로토타입에서 부족한 부분은 피드백되어 수정 보완되고 이런 과정이 계속 반복되어 원하는 기능과 퀄리티가 만족되면 실제 시스템을 만든다.

장점 : user가 프로토타입을 빨리 사용해 볼 수 있어 상호작용을 빠르게 해볼 수 있다.
user가 필요한 변경사항을 확인하여 실제 요구사항을 제시할 수 있다

단점 : 초기 디자인의 퀄리티가 떨어질 수 있다.

 

Thoroway Prototyping

디자인 프로토타입을 만듬으로써 완벽한 설계도면을 만드는것을 목표로하여 완성된 디자인프로토타입으로

디자인을 하고 해당 디자인으로 시스템을 만드는 방법론

장점 : 시간적, 비용적,기술적등 리스크를 최소화. 실제 시스템이 만들어지기 전에, 중요한 이슈들을 미리 알수 있다.

 

적절한 방법론을 선택하는 기준

-> 사용자 요구사항을 분명히 함.

제작에 필요한 기술을 확보할 수 있는가?

시스템의 복잡도는 어떠한가?

시스템의 신뢰도는 얼마나 중요한가?

시간을 얼마나 주어졌는가?

스케쥴을 예측할 수 있는가?

 

5. the Systems Analyst

- 변화에 잘 적응하는 사람으로써, 유저들의 기술적 역량등을 향상시키기 위한 방법들을 분명히하고 소프트웨어를 사용하도록 권장하며 교육시킨다.

 

Systems Analyst skills

technical skills : 기술을 이해해야 한다

business : 비즈니스 프로세스를 알아야 한다

analytical : 문제해결을 할수있는 분석적 역량

communications : 상대방이 기술을 잘 알든 모르든 상관없이 잘 소통할 수 있는 커뮤니케이션 역량

interpersonal : 리더쉽과 관리능력

ethics : 윤리적역량

 

Systems Analyst 역활

Business analyst : 시스템이 어떻게 비즈니스 밸류를 창출할지 찾고 새로운 비즈니스 프로세스와 정책을 설계

Systems analyst : 어떻게 기술이 비즈니스 프로세스를 향상시킬수 있을지 파악. 새로운 비즈니스 프로세스를 설계

Infrastructure analyst : 시스템이 인프라 표준에 부합하도록 해야하며, 인프라변화가 있더라도 시스템이 잘 적응하도록 해야한다.

Change management analyst : 프로젝트 진행중 발생하는 변경사항들을 관리, 유저 훈련 계획 개발 및 집행

Project manager : 프로젝트를 총괄하여 관리하는 사람 (스케쥴 설정, 작업 분배)

 

6. Object-Oriented Systems Analysis and Design

Object-Oriented Systems Analysis and Design

- Object-Oriented SystemUML을 이용하여 분석하는 방법론

use-case를 분석 : 유저가 어떻게 시스템을 사용하는가

구조 분석 : 객체간의 상화관계 분석

반복적, 증가적 분석 : 데이터와 프로세스를 반복적으로 추가하여 더 많은 기능들이 제공됨

 

Object-Oriented Systems

클래스

object : 클래스의 instance

attribute : 클래스의 속성

state : 특정시간에 클래스가 가지고 있는 value, 관계

2. methode, message

methode : 클래스의 행동

message : object에서 다른 object로 전달되는 정보

3. encapsulation

- encapsulation : 데이터와 프로세스를 결합

information hiding : 외부에서 클래스의 기능성이 보이지 않는다

4. inheritance

: 서브클래스는 슈퍼클래스의 데이터와 methode를 상속받을 수 있다.

 

7. Engineering workflows

business modeling

requirement

analysis

design

implementation

testing

deployment 유지보수

 

8. UML : Unified Modeling Language

UML, Unified Modeling Language

시스템 개발 과정에서, 개발자간의 의사소통을 원활하게 이루어지게 하기 위하여 표준화한 모델링 언어

14개의 다이어그램이 다음과 같이 2 그룹으로 나누어진다.

1. Structure diagrams : 소프트웨어의 구조를 중점적으로 나타냄 (6)

2. Behavior diagrams : 소프트웨어의 행동을 중점적으로 나타냄 (8)

 

Structure diagrams

시스템의 datastaric realationships을 표현하는 다이어그램들로 다음과 같이 6개의 diagrams이 속한다

1. class : 객체 내부의 속성과 메서드를 정리하여 정의한 것

2. object : 클래스를 인스턴스화 한 것

3. package : 비슷한 object들의 그룹

4. deployment : 소프트웨어가 작동하는 환경

5. component : input을 받아 내부에서 프로세싱을 하고 output을 출력하는 모듈

6. composite structure : component들로 구성된 구조

 

Behavior diagrams

object들 사이의 dynamic relationships을 나타내는 다이어그램들로 다음과 같이 8개의 diagram이 속한다

1. activity : 어떤 object의 행동을 나타냄

2. sequence : 여러 object들의 연속적인 행동들을 나타냄

3. communication : object들간의 연결 관계를 나타냄

4. interaction overview : object들간의 action을 통한 데이터 송수신

5. timing : 순서, 시간적인 개념

6. behavior state machine : 하나의 object에서 내부상태에 따른 행동양상을 나타냄

7. protocol state machine : 여러 object들 사이의 상태에 따른 행동양상을 나타냄

8. use-case diagrams : 사용예제로 어떤 기능을 어떻게 사용하는 나타냄

 

 

'CS > Software Engineering' 카테고리의 다른 글

3. Business Process and Functional Modeling  (0) 2020.07.10
2. Project Management  (0) 2020.07.10
Posted by yongminLEE
2020. 7. 10. 16:58

Data Mining Definition

정의 : bigdata로부터 의미있고 상관관계, 패턴, 경향을 찾아내는 프로세스

background : data의 양은 증가함에도 불구하고 분석과 예측에 사용되는 유용한 정보는 브적

 

Comprehensive study

database technology

statistics

viusalization

AI

information science

machine learning

 

data mining and intelligent business

end user : making decisions

business analyst : data presentation, viusalization techniques

data analyst : data mining, information discovery, data exploration, data warehouses

dba : data sources

 

process of data mining

problem definition

data exploration

data preparation

mdeling

 

Supervised data vs Unsupervised data

- supervised data : training datainput과 그에 대한 output값이 라벨링이 되어 있는 targets를 포함

supervised leanring : supervised data와 계산되는 error를 이용하여 모델을 학습

unsupervised data : input에 대해 output값이 라벨링 되어 있지 않는 data

 

Supervised data prediction

decision tree

neural network

regression analysis

logistic regression

case-based reasoning

 

Unsupervised data prediction

- association rule discovery

market basket analysis

clustering

 

Techniques of data mining

association rule

- sequential pattern

clustering

 

Association rule

Support, Confidence등을 통해서 공통적인 규칙을 찾아나간다.

Support(지지도) - 전체 경우의 수 중 관계를 설정하기 위한 상품들이 동시에 발생될 확률.

- Confidence(신뢰도) - 특정 상품이 선택되었을 경우 다른 상품이 선택될 확률.

 

Sequential pattern

Orderd data: 데이터 개체의 속성이 시간적인 순서와 연관되는 데이터 집합 (ex) customer shopping sequences)

orderd data에서 연속되는 패턴을 발견한다

 

Clustering

data들에 대한 사전 정보가 없는 경우, data들 사이의 유사성 을 이용하여, 전체를 몇 개의 집단으로 그룹화

cluster(그룹) 내부의 member들은 다른 clustermember들 보다 유사점이 많다

 

K-mean algorithm

정의 : K Mean Clustering Algorithm은 임의의 데이터 집단을 K개의 Cluster로 나누어주는 알고리즘

과정

1. Clustering 하고자 하는 K를 결정한다.

2. K가 결정되면 그 K개의 수만큼의 임의의 중심점 C를 결정한다. => C1, C2 , C3 ....., Ck

3. 각 중심에서 각 데이터의 거리를 계산하고 가장 가까운 것들을 그 데이터그룹에 소속시킨다.

ex) C1에 가장 가까운 데이터들은 Group 1, Ck에 가장 가까운 데이터들은 Group K.

4. 각 그룹에 대하여 다시 새로운 중심값을 계산한다.

ex) 1그룹에 속한 모든 데이터의 평균을 통해 중심값을 계산하고 그것을 새로운 C1이 되게 한다.

5. 새로운 중심값으로 부터 3번과정(Regroup)을 실행한다.

6. 데이터의 그룹이 변하지 않을 때 까지 3~5번 과정을 반복한다.

 

'CS > AI' 카테고리의 다른 글

7. Semantic web 과 Knowledge representation  (0) 2020.07.10
6. Game Playing  (0) 2020.07.10
5. Heuristic Search  (0) 2020.07.10
4. Intelligent Software Agent 와 Symbolic AI  (0) 2020.07.10
3. Convolutional Neural Network  (0) 2020.07.10
Posted by yongminLEE
2020. 7. 10. 16:56

web 1.0 2.0

- web 1.0 : 사용자는 컨텐츠 열람(단방향)

- web 2.0:사용자가 직접 컨텐츠 생성 및 공유에 참여 (양방향)

 

Web vs Semantic Web

Web : linked documents

- Semantic Web : 컴퓨터가 사람을 대신하여 정보를 읽고 이해하고 가공하여 새로운 정보를 만들어 낼 수 있도록, 이해하기 쉬운 의미를 가진 차세대 지능형 웹

resources : 인터넷 사전, 위키백과, 인터넷 정보

 

Distributing Data

why? : distribution solutoinflexibility를 제공

Staregies

1. row by row

2. column by column

3. cell by cell

 

Cell by Cell

row by row cell by cell을 곱한 형태로 양쪽의 장점을 모두 갖는다

각각의 cell3가지 value로 나타내어진다

1. global reference for the row

2. global reference for the column

3. the value in the cell itself

 

Knowledge Representation

지식을 표현, 관리하는 방법론

사실과 관계성 등을 부호화하고 지식 베이스에 저장하는 방법

example

1. production rule : ‘IF A THEN B’ 형식의 추론 규칙

2. RDF : 웹에서의 knowledge representation

 

RDF (=Resource Description Framework)

semantice web을 구현하기 위한 knowledge representation(지식표현)기법 중의 하나

RDFcell by cell 형태

RDFcell 하나는 3가지 value(Subject, Predicate, Object)를 나타내는데 이 celltriple 이라고 한다.

RDFdirected graph로 표현 가능. 이때 graphknowledge graph라고 한다

 

Merger

RDF 형식으로 data를 생성, 저장, 공유하면 RDFgraph로 구조화 할 수 있다.

구조화된 graph들을 SPO관계에 따라 merge 함으로써 모든데이터를 참조 가능

 

Inference(추론) in Semantic Web

 

 

 

 

'CS > AI' 카테고리의 다른 글

8. Data Mining  (0) 2020.07.10
6. Game Playing  (0) 2020.07.10
5. Heuristic Search  (0) 2020.07.10
4. Intelligent Software Agent 와 Symbolic AI  (0) 2020.07.10
3. Convolutional Neural Network  (0) 2020.07.10
Posted by yongminLEE
2020. 7. 10. 16:54

Game PlayingAI를 적용하는 이유

인간과 바로 비교할 수 있다

game playnon-trivial

game is well defined and repeatable

game is limited and accessible

 

One-Ply Search

내가 선택 가능한 case들을 대상으로 evaluation function으로 평가

나에게 제일 유리한 case 선택 => max

 

Two-Ply Search

내가 선택 가능한 case들을 계산하고, 이후 상대방이 선택 가능한 case들까지 계산하여 evaluation fuction으로 평가

상대의 case들 중에서 나에게 제일 치명적인 것을 선택 => min

나에게 치명적인 것들 중에서 나에게 제일 유리한 것을 선택 => max

어차피 지는 경우라면 mini-max 알고리즘이 아닌 다른 알고리즘 적용

 

Mini-Max Algorithm

예상되는 최대의 손실(maximum loss)를 최소화 (minimize) 시키기 위해 사용되는 의사 결정 이론의 한 방법

해당 문제에서 탐색이 끝나면 탐색트리로 부터 최상이라고 추정되는 행동을 찾기 위해, 탐색트리의 단말(leaf) 노드에 정적 평가 함수 (static evaluation function)로 추정값을  얻고 그 단말노드의 가치를 통해 최상의 행동을 찾음

 

Alpha-Beta Pruning (알파-베타 가지치기)

Mini-max 알고리즘에 의해 평가되는 노드들의 수를 감소시키기 위한 기법

- Alpha Cutoff : 최소값에 의한 pruning

- Beta cutoff : 최대값에 의한 pruning

 

Alpha Cutoff (=Alpha pruning)

minimizing ply에서 일어남

ex) B3을 보장하는 상황에서, C의 가능 case5case가 존재하면 C의 남은 case들은 연산할 필요 x
-> -5보다 작은 경우가 있으면 minimizing ply이므로5 보다 작은 case 선택 되어 C<-5, B=3이므로 결국 B가 선택
-> -5보다 큰 경우가 있으면 minimizing ply이므로 C=-5, B=3 이므로 결국 B가 선택

 

Beta Cutoff (=Beta pruning)

maximizing ply에서 일어남

B = -5 일 때, C의 가능 case7이 존재하면 C의 남은 case들은 연산할 필요 x
-> 7보다 작은 경우가 있으면 maximizing ply이므로 C=7, B=5이므로 결국 B가 선택됨
-> 7보다 큰 경우가 있으면 maximizing ply이므로 C>7, B=5이므로 결국 B가 선택됨

 

Alternatives to Mini-Max

어차피 지는 게임에서는 Mini-Max 알고리즘 대신 다른 알고리즘 적용

 

'CS > AI' 카테고리의 다른 글

8. Data Mining  (0) 2020.07.10
7. Semantic web 과 Knowledge representation  (0) 2020.07.10
5. Heuristic Search  (0) 2020.07.10
4. Intelligent Software Agent 와 Symbolic AI  (0) 2020.07.10
3. Convolutional Neural Network  (0) 2020.07.10
Posted by yongminLEE
2020. 7. 10. 16:53

Search Techniques

Blind : near optimal은 고려하지 않고 decision을 결정
- DFS (depth first search)

- BFS (breadth first search)

Heuristic : near optimal인 경우 decision

- Hill climbing

- Best-first search

- greedy search

- A* search

 

Generate-and-Test

generatorpossible solution을 생성

testeractual solution인지 확인

  - incorrect solution > generator가 다시 possible solution 생성

  - correct solution -> stop

 

Hill climbing

-> new state goal state이거나 current state보다 좋으면 선택

evaluate the initial state.

Loop until a solution is found or no new operators left

    select an operator and produce a new state

    evaluate the new state

        if it is a goal state -> quit

        if it is not a goal state but it is better than the current state, then make it the current state

        if it is not better than the current state, continue the loop

 

 

Steepest-Ascent Hill Climbing

가능한 new sate들 중 제일 좋은 new state을 선택

문제점 : goal state에 도달하려면 worse state를 선택해야 하는데, Steepest-Ascent Hill Climbing에서는 worse state 선택 x

 

Best-first Search

현재 open된 노드들 중에 f’이 최선인 것을 우선적으 로 검색

 

Greedy best-first search

open된 모든 node들을 고려하는 것이 아니라, 당장 눈 앞에 보이는 최선을 따라서 탐색

loop에 빠질 수 있다.

optimal 하지 않다

 

A* search

출발 노드부터 목표 노드까지의 최적경로를 탐색

f(n) = g(n) + h(n)

- f(n) : 출발 노드에서 시작하여 노드 n을 거쳐서 목표 노드까지 도달하는 비용

- g(n) : 출발 노드로 부터 노드 n까지의 경로비용 (현재 경로까지 확정 비용)

- h(n) : 노드 n으로 부터 목표 노드까지의 경로비용 (현재부터 goal 까지 확정 비용)

f(n)이 최소인 노드를 따라 탐색하면, 최소 비용의 경로를 탐색

- h(n)은 아직 탐색하지 않은 경로이므로 정확히 계산하기 어렵거나 불가능함 -> 경험적 규칙 사용

 

'CS > AI' 카테고리의 다른 글

7. Semantic web 과 Knowledge representation  (0) 2020.07.10
6. Game Playing  (0) 2020.07.10
4. Intelligent Software Agent 와 Symbolic AI  (0) 2020.07.10
3. Convolutional Neural Network  (0) 2020.07.10
2. 신경망 개요 및 구현  (0) 2020.07.10
Posted by yongminLEE
2020. 7. 10. 16:51

Intelligent Software Agent

사람을 대신해서 업무를 수행하는 소프트웨어

- AgentSensor를 통해 Enviroment에서 percept 하여서 actuator를 통해 Action이 취해진다.

- Formulate Goal, Formulate problem, Find Soultion : Agent는 목표와 문제를 구체적으로 설정하고 해결책을 찾아야 한다.

 

Intelligent Software Agent4가지 특징

autonomy : Agent는 자율적으로 동작 해야한다.

social ability : 다른 Agent와 상호작용 해야한다.

reactivity(반응성) : 주변 상황이나 다른 agent의 행동 변화를 인식하고 적절한 대응을 해야한다

proactivity(능동성) : 주어진 목적에 따라 정보를 수집하고 작업을 수행 해야한다

 

Symbolic AI

명시적인 규칙을 충분하게 많이 만들어 지식을 다루면 인간 수준의 인공 지능을 만들 수 있다.
=> 데이터가 존재하지 않으며, 컴퓨터 작동 방식에 맞게 지식을 논리와 기호로 표현

솔루션은 explainable(설명가능) 하다.

 

Production System

- 규칙을 기반으로 하는 시스템 ,

- Rule을 기반으로 인간 문제 해결방법을 모델링 하는데 그 의의가 있다.

Global database : short-term memory 라고도 하고, 시스템에서 다루는 세계의 현재 상태를 표현

Production rule : long-term memory이다. 생성시스템에 기억된 룰들이다.

Control System : 룰들은 이 컨트롤 시스템에 기초하여 효과적으로 적

 

Production System

data = initial state

While(data != termination condition)

Begin

Select some rule R in the set of rules // Control system에 기반하여 rule 선택

Apply it

data = result of applying R to data

End

 

Control Strategies

pick the first rule

pick one rule ar random

Depth-first search

Breadth-first search

 

Heuristic Search

decision을 할 때 가능한 case를 모두 search 하지 않고, 특정 case마다 heuristic evalutaion function을 사용하여 evaluation을 구하고 near optimalcase를 선택함으로써 search space를 줄여 효율성을 높이는 기법

ex) 8-puzzle 문제에서 Manhatten distance heuristic 사용

 

Problem characteristics

decomposable

ignorable

recoverable / irrecoverable

predictable

absolute / relative

the role of knowledge

does the task require interaction with a person?

 

'CS > AI' 카테고리의 다른 글

6. Game Playing  (0) 2020.07.10
5. Heuristic Search  (0) 2020.07.10
3. Convolutional Neural Network  (0) 2020.07.10
2. 신경망 개요 및 구현  (0) 2020.07.10
1. AI introduction  (0) 2020.07.10
Posted by yongminLEE
2020. 7. 10. 16:50

CNN 개요

컨볼루션 신경망은 입력된 이미지에서 “feature(특징)”을 추출하기 위해 filter(=mask)를 도입하는 기법

 

input의 다양성 : Trickier cases

translation : 치우침

scaling : 사이즈가 크고 작음

rotation : 회전

weight : 두께

input이 위와 같이 다양하기 때문에 부분을 나누어서 부분별 feature 파악

 

convolution layer

inputfilter(=kernel)를 합성곱을 하여 input 데이터의 feature를 추출한다.

여러개의 filter를 이용하여 많은 feature들을 추출 => feautre Map이 형성 됨

- 활성화함수로 ReLU를 이용 : 추출된 값들 중에 음수는 0으로 설정

cnn parameter : 입력채널 x 필터폭 x 필터 높이 x 출력 채널

 

pooling

convolution layer에서 추출한 feature의 사이즈를 축소시키는 과정을 poolig 이라고 한다.

average pooling : 정해진 구역 안에서 평균값을 도출

max pooling : 정해진 구역 안에서 최댓값을 도출

 

Deep stacking

convolution layerPooling layer를 여러번 반복함으로써 처음에는 작은 부분의 특징을 찾고 점점 큰 부분의 특징을 찾을 수 있다.

 

Flatten

convolution layer, pooling layer를 지나 Fully connected layer에게 데이터를 전달해야 하는데,
convolution layerpooling layer2차원 배열을 다루고 fully connected layer1차원 배열을 다루므로
2차원 배열을 1차원 배열로 변환한다

 

CNN Architectures

AlexNet : ReLUdropout 사용

VGG Net : 3x3 filter 사용

GoogLeNet : inception 모듈을 사용하고, fully connecy layer 대신 average pooling layer를 사용하여 획기적으로 파라미터 수를 감소

 

'CS > AI' 카테고리의 다른 글

5. Heuristic Search  (0) 2020.07.10
4. Intelligent Software Agent 와 Symbolic AI  (0) 2020.07.10
2. 신경망 개요 및 구현  (0) 2020.07.10
1. AI introduction  (0) 2020.07.10
인공지능, 머신러닝, 딥러닝 개요  (0) 2020.03.16
Posted by yongminLEE
2020. 7. 10. 16:49

분류(classification)와 예측(prediction)

분류 : 데이터들을 특정 기준으로 나눌 수 있는 선형구분자를 설정하여 분류. 오차를 이용하여 구분자의 기울기를 조정하는 것을 학습이라고 한다.

- Error = target actual

Learning rate(L) : 학습률은 업데이트의 정도를 저장

update parameter : new A = A + dA = A + L(E/x).

예측 : 새로운 data가 들어오면 구분자에 의해 어떤 output으로 분류될지 판단 => 예측과 분류는 다른 것이 아님

XOR 문제의 경우 선형분류자는 하나가 아니다 -> 여러개의 선형 분류자를 이용 -> 인공신경망은 여러개의 분류자가 함께 동작

 

인공신경망

인공뉴런은 X1부터 Xn까지 입력 값에 각각 W1부터 Wn까지의 가중치를 곱하고 그 모든 합이 임계치(threshold)가 초과되면 출력값이 발생

activation functoin(활성화 함수) : 여러 입력신호를 받아 특정 threshold를 넘어서는 경우에 출력 신호를 생성하는 함수 -> sigomoid 함수(=logistic 함수)가 대표적이다. => y = 1 / (1+ e^-x)

인공신경망 : 상호연결된 생물학적 뉴런을 인공적으로 모델화 한 것으로, 다수의 인공뉴런을 가지고 있는 layer를 여러 층으로 쌓은 후 이전 layer와 이후 layer의 모든 인공뉴런들이 연결되어 있다. 이때 각각의 연결에 weight(가중치)가 존재하는데 학습과정을 통해 weigjt값들을 조정함으로써 input에 대해 올바른 output이 나올 수 있도록 한다.

신경망에서 신호를 전달하는 연산은 행렬곱을 통해 표현

forward propagation : output = sigmoid(X1*W1 + X2*W2 + ... + Xn*Wn)

 

인공신경망에서의 학습

- 입력 값을 이용하여 인공 뉴런의 출력 값을 계산

- 인공 뉴런이 계산한 출력 값과 사용자가 기대하는 출력 값을 비교. => Error = target actual

back propagation : error 정보가 뒤쪽으로 계속 전파

중간 계층에 존재하는 노드들의 오차는 출력계층 노드들의 오차를 가중치에 크기에 비례해 나눠서 back propagation

back propagation은 행렬곱으로 표현 : Error(hidden) = W.T(hidden-output) * Error(output)

가중치 업데이트 : 함수의 최저점을 구하는 Gradient Descent 기법을 학습 목표 값과 실제 값 간의 차이를 구하는 Error function에 적용 -> error function = (target-actual)^2인 이차함수 이므로 error function의 최저점은 error function의 기울기(dE/dw)가 가장 작은 지점 -> dE/dw =
-> new W = old W (LearningRate * (dE/dw))

 

'CS > AI' 카테고리의 다른 글

5. Heuristic Search  (0) 2020.07.10
4. Intelligent Software Agent 와 Symbolic AI  (0) 2020.07.10
3. Convolutional Neural Network  (0) 2020.07.10
1. AI introduction  (0) 2020.07.10
인공지능, 머신러닝, 딥러닝 개요  (0) 2020.03.16
Posted by yongminLEE
2020. 7. 10. 16:48

AIengineeringscience의 관점에서 비교

-AI : 사고과정 + 추론을 통한 지능적 행동에 관련된 연구를 하는 학문

-AI in engineering : 실제 지능적으로 사고, 행동할 수 있는 intelligence machine을 만들기 위해 요구되는 개념이나 이론, 실습 등에 관련된 연구 분야. => 뇌의 작동원리를 모델로 하여 프로그래밍

- AI in science : 사람이나 동물이 자연생태에서 사고하고 행동하는 일련의 과정들을 탐구하고 분석하여 관련된 개념이나 원리를 연구하는 분야 (-인지과학) => 뇌의 학습, 인지과정의 원리를 이해

 

분야별 AI

인지과학의 AI : 어떻게 자연상태의 생각과 정신적현상이 동작하는지 이해 => 뇌의 학습, 인지과정의 원리를 이해

철학의 AI : 기본적이고 중요한 철학적인 문제들을 탐험하기위한 방법

 

AI 구현의 패러다임

Symbolic AI : 고전적인 AI 구현방식. 여러 symbolic knowledg들 사이의 관계와 문법을 연구하고 symbolic 추론을 연구

Connectionist AI : mental stateneural units을 가지고 있는 n차원 벡터들로 표현되는데, 이런 neural units간의 연결을 matrix를 이용하여 계산한다.

 

Turing Test

- 기계가 생각하고 있는가를 판정하는 시험 (Alan Turing)

사람과 기계가 대화하는 상황에서, 사람은 대화 상대방이 기계인지 사람인지 알아챌 수 있는지 시험

- 어떻게 해서 지능적인 판단과 행동을 할 수 있는가가 주요 연구 대상 => 인간이 그것이 기계임을 구분하지 못하는 것이 중요한 것이 아니라 인간이 하는 말과 행동에 반응하고 이를 바탕으로 새로운 사실을 추론하는 등, 인간에게 유용하게 사용할 수 있어야 함

 

Video Turing Test

비디오를 컴퓨터에게 보여주고 비디오의 내용을 컴퓨터에게 물어봤을 때, 캄푸타기 사람만큼 잘 대답하는지 알아보는 시험

 

AI system

ELIZA : 인공지능 채팅 프로그램

ALICEBOT : 인공지능 채팅 프로그램

Deep blue : IBM이 개발한 chess-playing computer

Watson : IBM이 개발한 퀴즈 답변 인공지능 시스템. 자연어처리, 정보검색, 지식표현, 지식추론, 기계학습 응용시스템

AlphaGo : google deepmind가 개발한 바둑 인공지능 프로그램. 실시간 decision-making 기능. MinMax 알고리즘, Monte Calro Tree Search, CNN 기술사용

Amazon Go : 체크아웃이 필요없는 상점. 컴퓨터비전, sensor fusion, deep learning을 이용하여 구현됨

 

'CS > AI' 카테고리의 다른 글

5. Heuristic Search  (0) 2020.07.10
4. Intelligent Software Agent 와 Symbolic AI  (0) 2020.07.10
3. Convolutional Neural Network  (0) 2020.07.10
2. 신경망 개요 및 구현  (0) 2020.07.10
인공지능, 머신러닝, 딥러닝 개요  (0) 2020.03.16
Posted by yongminLEE