Please enable JavaScript.
Coggle requires JavaScript to display documents.
인공지능과 학습(1528 한아람) - Coggle Diagram
-
-
문제 해결을 위한 데이터
대용량의 품질 좋은 훈련 데이터가 필요하다. 만약 훈련 데이터의 질이 좋지 않거나 질이 좋더라도 데이터의 양이 충분하지 않으면 모델의 성능은 높지 않을 것이다. 또 편향을 띤다면 정확하지 않을 것이다.
편향: 한쪽으로 치우치는 성질을 말한다. 데이터가 특정 방향으로 치우치거나, 균형 있게 고려하기 어려운 경우에 발생한다. 반면 기계학습에 좋지 않은 것은 저출산 문제를 해결한다고 가정하면 다양한 사회적 경제적 요인이 복합적으로 적용해 발생했기 때문에 인공지능의 학습에 필요한 우수한 품질의 데이터를 적절히 확보하기 어렵다. 또한 다양한 요인, 핵심 요소가 무엇인지 파악하기가 어렵다.
의류 사례
데이터 공정성
데이터 수집 처리, 사용, 공유 과정에서의 공평성과 투명성을 의미한다.
-
체형에 따라 옷의 사이즈를 추천하는 인공지능을 만든다고 가정하면 키, 길이, 몸무게 등 필요할 것이다. 충분한 많이 수집한 훈련데이터를 이용하여 기계학습 모델을 만든다면 문제를 해결할 가능성이 높다. 하지만 훈련데이터의 양이 너무 적거나, 체형을 분석하기에 적합한 속성이 부족하거나, 한쪽으로 치우친 데이터만 사용한다면 성공적으로 어렵고, 기계학습으로 해결할 가능성이 낮아진다.
과거의 구입 이력, 최근 클릭한 상품 목록 등의 데이터가 충분히 있고, ‘이전 기록을 바탕으로 자동으로 상품을 추천하는 시스템을 만들자’라는 문제는 기계학습으로 해결할 가능성이 높은 문제라고 할 수 있다.
데이터 선정하기
데이터 선정
우리가 해결하고자 하는 문제와 수집 가능성, 정보 보호 여부, 데이터의 품질, 데이터 수집 비용 등의 요인을 고려하여 조건에 부합하는 데이터를 선정해야 한다.
-
데이터 수집하기
데이터 수집 시 고려 사항
- 기계학습을 위해 충분한 양의 데이터인가?
- 편향되지 않은 데이터 인가?
- 필요한 속성에 대한 내용을 담고 있는 데이터 인가?
- 신뢰 가능한 최신의 데이터인가?
데이터 셋: 데이터의 집합 데이터 분석가들이 분석을 위해 가공한 데이터들을 데이터 포털 등의 사이트에 업로드하면 그것을 내려받아 활용할 수 있고 개인이 만들어 공유한 데이터뿐만 아니라 여러 기업이나 공공 기관에서 제공하는 데이터를 활용할 수 있다.
API: 응용 프로그램 개발에 활용 가능한 인터페이스 제공된 데이터를 활용할 때, 원 저작권을 침해하지 않도록 유의해야 한다.
직접 데이터를 수집, 웹크롤링, 설문 조사, 인터뷰 결과 정리 등 다양한 방식을 통해 데이터를 정리할 수 있다.
02 데이터 전처리와 핵심 속성 추출
데이터 전처리 하기
전처리: 결측치, 이상치의 유무를 파악하고 문제 해결에 필요한 속성이 무엇인지 선별한 다음 문제 해결에 적합한 형태로 데이터를 가공하는 과정을 말한다. 가공된 데이터를 사용하면 기계학습의 분석 결과를 왜곡시키거나 성능을 떨어뜨리는 것을 방지할 수 있다.
결측치 처리하기
-
결측치를 처리하는 방법
행이나 열을 삭제하는 방법
평균, 중앙값, 최빈값 등의 대푯값으로 결측치를 대체하는 방법
-
핵심 속성 추출하기
-
데이터 속성
데이터를 설명하는 특징이나 성질
ex) 학생데이터: 나이, 성별, 출생지, 내신 성적, 학업 태도 총 5개의 속성으로 이루어져 있다.
속성값: 각 속성이 가질 수 있는 값으로 숫자나 텍스트 등으로 나타낸다.
핵심 속성 이해하기
데이터의 모든 속성: 기계학습에 어떤 영향을 미치는지 확인해야 한다. 문제 해결에 필요한 속성만 선택하여 사용해야 기계학습의 성능을 높일 수 있다. 이때 문제 해결에 필요한 속성을 핵심 속성이라고 한다. 만약 핵심 속성이 부족하다면, 추가 자료를 수집해야 한다. 예를 들어 학생 데이터의 성적에 따라 대학 합격 여부를 예측하고자 할 때, 내신 성적과 학업 태도는 대학 합격 여부를 예측하는 데 필요한 속성으로 이를 핵심 속성이라고 볼 수 있다.
-
히트맵으로 핵심 속성 추출하기
데이터의 속성 중에서 기계학습에 필요한 핵심 속성을 찾는 과정이 필요하다. 데이터를 시각화하면 어떤 속성이 문제 헤결에 필요한지 직관적으로 판달할 수 있으며 막대 그래프, 히스토그램, 원그래프, 산점도, 히트맵 등이 있다.
-
상관관계 분석
상관계수(r)의 값: 절댓값 1에 가까울수록 두 속성 간의 관련성이 높은 것으로 상관관계의 정도는 오른쪽 표와 같이 해석한다. 한 변수가 증가할 때 다른 변수도 증가하는 경향을 보이면 양의 상관관계, 한 변수가 증가할 때 다른 변수는 감소하는 경향을 보이면 음의 상관관계라 한다.
회귀(=예측)
회귀: 어떤 현상에 영향을 미칠 수 있눈 여러 요인과 특정 결과 사이의 관계를 함수로 표현해 연속적인 수치를 예측하는 기계학습 방법이다. 즉 훈련 데이터로 학습한 모델을 사용하여 새로운 입력값에 대한 수치 결과를 예측하는 것이다.
회귀 모델: 훈련 데이터를 기반으로 독립 변수와 종속 변수 사이의 규칙을 파악하여 수식으로 나타내고, 학습된 규칙에 새로운 입력값을 대입하여 예측값을 얻어내는 모델이다.
독립 변수: 주로 입력값을 의미하며, 종속 변수는 주로 결과값을 의미한다.
선형 회귀 알고리즘: 예측값과 실젯값의 오차를 최소화하는 가설 함수를 찾고 최적화하며 학습을 진행한다. 최고 기온이라는 독립 변수 x축으로, 판매량이라는 종속 변수를 y축으로 하는 그래프를 그렸을 때 데이터를 표현하는 좌표평면 위의 점들을 가장 알맞게 이어주는 추세선을 그린다. 이때 직선은 y=wx+b의 형태로 표현할 수 있는데, 이 식을 가설 함수라고 한다. 이를 정확히 나타내는 w값과 b값을 찾아 수식을 만드는 것이 선형 회귀 알고리즘의 학습 과정이다. 예측값과 실젯값의 오차를 구하는 손실함수를 이용해 오차를 최소화하면서 예측의 정확도를 높일 수 있다.
분류
분류: 미리 정의된 여러 범주로 데이터를 구분하기 위한 경계를 학습하여 새로운 입력이 들어오면 여러 범주 중 하나를 선택하는 과정이다. 예를 들어 개와 고양이 이미지를 수집하여 분류 모델을 생성한 후, 데스터 데이터를 입력하면 각 데이터에 대한 클래스를 개 또는 고양이로 분류할 수 있다.
-
-
이진 분류 예: 환자의 의료 데이터를 수집하여 당뇨 발병 환자와 미발병 환자의 공통적인 특성을 학습하여 새로운 환자가 당뇨 환자가 당뇨 환자인지 아닌지를 판단하는 모델을 만드는 것
군집
군집: 비지도 학습 알고리즘이 일종으로, 데이터가 어떻게 그룹화되어야 하는지 미리 정의하지 않고 컴퓨터가 데이터 패턴을 스스로 찾아내는 방식이다. 학습 데이터가 정답 데이터를 가지고 있지 않은 경우이므로 특성을 분석하여 서로 유사한 특성을 가진 데이터끼리 그룹화한다. 비슷한 특성을 파악하고 데이터를 그룹으로 묶는 것이라고 할 수 있다. 비슷한 유형끼리, 상품 추천 알고리즘, 인구 밀집도를 분석해 버스 노선을 결정, SNS 조회 기록을 이용해 게시물을 추천할 때에도 사용한다. 이 외 데이터 시각화 및 지도학습을 위한 데이터의 전처리 기술로도 사용된다.
k-평균 알고리즘: 군집 중심으로부터 가까운 거리에 있는 데이터를 같은 군집으로 할당하고, 군집의 중심을 변경되지 않을 때까지 계속 바꾸며 조정하는 방식으로 군집을 형성한다.
-
05 딥러닝의 이해와 활용
1 인공신경망과 딥러닝
인공신경망과 퍼셉트론
퍼셉트론: 인공신경망을 실제로 구현한 연산 장치로서. 0 또는 1을 출력하는 인공신경망의 가장 작은 단위
- 뉴런의 수상 돌기와 축삭 돌기에서 다른 뉴런으로 전기 신호를 보내듯이 데이터를 출력한다. 노드 또는 인공 뉴런이라고 부른다.
- 모든 입력값에 가중치를 곱하여 더한 값에 편향을 더한 후 활성화 함수를 거쳐 0 또는 1을 출력한다.
- 신호의 세기는 정보의 중요도에 따라 달라지고 중요한 정보는 높은 가중치를 곱하여 전달한 다음 낮은 가중치를 곱하여 소멸 시킨다. 편향을 더하여 약간의 조정을 한다. 최적의 가중치와 편향은 손실 함수의 최솟값으로 기울기가 0인 지점을 말한다.
단층 퍼셉트론: 입력층 1개와 출력층 1개로 이루어진 구조, 입력층, 은닉층, 출력층의 구조를 갖춤.활성화 함수: 조정해 주는 함수, 계단 함수, 시그모이드 함수, 렐루손실함수: 훈련데이터를 잘 학습했는지 파악하는 함수로, 예측값과 실젯값과의 차이를 구하는 함수
- 손실함수의 값은 작아지므로, 손실함수의 값이 작을수록 학습이 잘된 좋은 모델
최적화: 최소가 되도록 가중치와 편향을 갱신하는 과정, 오차 역전파를 통해 이루어진다.경사 하강법: 무작위로 가주이의 값을 수정하며 아래 방향으로 일정거리인 학습률 만큼씩 이동. 기울기가 0이 될 때까지 학습을 거듭하여 가중치와 편향을 수정하는 것
- 단점: 전체 데이터의 기울기를 구하여 속도가 느리고 계산량이 많다.
- 최적화 알고리즘으로는 확률적 경사 하강법, 미니 배치 경사 하강법, 모멘텀, 아담 등이 있다.
딥러닝: 여러 개의 은닉층을 포함하여 만든 삼층 신경망을 통해 학습이 이루어지는 기계학습의 한 방법이다.
- 유의점: 입력층에서 은닉층을 거쳐 출력층으로 연속적인 연산이 이루어진다.
- 장점: 은닉층의 개수를 늘려 층을 깊게 설계할수록 더 복잡한 문제를 해결할 수 있디.
- 단점: 층이 깊을수록 계산량이 많아져 학습 시간이 오래 걸리고, 과대적합이 발생할 수 도 있다.
딥러닝의 학습 원리: 딥러닝에서 '학습한다'는 가중치와 편향을 찾아가는 과정을 말하고 학습의 최종 목표는 최적의 가중치와 편향을 찾는 것이다.심층 신경망: 다수의 은닉층을 통해 복잡하고 많은 데이터를 정교하게 처리할 수 있다.
-
딥러닝의 활용 분야
실생활 속에서 딥러닝이 활용되는 사례
컴퓨터 비전: 이미지 분류, 얼굴 인식 등
- 사람이 눈으로 사물을 보고 인식하는 것처럼 컴퓨터의 활용을 통해 정지 영상이나 동영상을 분석하여 의미 있는 정보를 추출하는 기술
- 대표적인 딥러닝 알고리즘으로는 합성곱 신경망이 있다.
합성곱 신경망: 2차원의 입력 데이터를 1차원 배열의 형태로 변환한다. 또 2차원 평면에서 갖고 있던 이미지의 생김새 정보를 잃게 된다.기존의 심층 신경망: 형태의 변환 없이 2차원의 입력 데이터를 사용한다. 또 인간의 뇌가 사물을 구별하듯 생김새의 정보 그대로 사물을 학습한다.
음성 인식 및 자연어 처리: 언어 번역, 음성 인식 등
- 사람이 사용하는 언어를 컴퓨터가 처리하기 위한 기술을 연구하는 분야다.
- 음성은 인간과 인공지능과의 상호 작용에 있어 가장 보편적이고 편리한 정보 전달 수단이기 때문에 음성 인식 기술이 매우 중요하다.
- 잡을 제거 및 소리 보정 기술, 음성을 변환하는 기술 등이 있다.
- 대표적인 딥러닝 알고리즘은 순환 신경망이다.
순환 신경망: 데이터 간의 관계나 순서가 중요한 순차적인 데이터를 입력받아 결과를 도출하는 딥러닝 모델로, 자연어 처리나 시간에 따라 변화하는 시계 열 데이터 등을 처리하는 데 주로 사용됨.
순환 신경망 구조: 중간 출력을 은닉 상태라고 하고 데이터의 중간 결과를 기억할 수 있다.
이전 입력값이 고려된 현재의 입력값에 따라 출력값을 결정한다.
문장을 모두 읽고 최종적으로 감정을 도출하는 문제에 상당히 적합한 구조이다.
의료: 질병 진단, 약물 발견 등
금융: 투자 지문, 사기 탐지 등
쇼핑: 콘텐츠 필터링, 개인별 추천 시스템 등
농업: 작물 모니터링, 해충 방제 등
-
음성 인신과 자연어 처리 시스템의 동작 원리
명령 수행 및 상호 작용
- 오늘 날씨는 가벼운 옷차림으로 외출하기 좋아요. 다만 오후 2시쯤 비가 올 예정이니 우산을 챙기세요.
자연어 처리
- 형태소 분석: 문장에서 단어를 나누는 단계로 어떻게 형태소를 분리하는지에 따라 성능이 달라질 수 있다. 오늘/날씨/를/알/리/어/주/어/
- 구문 분석: 형태소 간의 의존 관계를 분석하고 문법적으로 구조가 맞는지 파악한다.
- 의미 분석: 개체명 분석, 단어의 중의적 표현 등을 파악하여 문맥상 의미를 파악한다.
- 담화 및 의도 분석: 대화의 맥락을 이해하고 생략된 의도를 파악한다.
오늘의 날씨 정보와 우산을 준비하라는 안내가 필요하다는 뜻이구나.
음성 인식
- 음성 신호: 잡음을 제거한다.
- 부호화: 입력된 데이터를 일정 구간으로 나눠 숫자로 변환한다.
- 특정 추출: 숫자에서 특징되는 자음, 모음 등의 음소를 추출한다.
- 패턴 비교: 기존 데이터와 비교 및 맞춤법 점검 등을 통해 텍스트 데이터로 변환한다.
- 인식: ‘오늘 날씨를 알려 줘’를 정확하게 인식한다.
-
06 딥러닝으로 손 글씨 분류하기
1단계: 문제 정의하기
2단계: 데이터 수집 및 전처리하기
- 데이터 수집하기: 손 글씨 숫자를 구별하는 딥러닝 모델을 만들기 위해서는 손 글씨 숫자 데이터셋이 필요하다. 여기서는 손 글씨 데이터셋인 MNIST 데이터셋을 사용한다.
- 데이터 탐색하기
- 데이터 전처리하기
3단계: 딥러닝과 알고리즘 선정하기
- 인공신경망 모델 구조 구조 만들기: MNIST 데이터를 수집하고 탐색 및 전처리가 모두 끝났다면 이제 본격적으로 인공신경망 구조를 정의하고 설계한다.
- 인공 신경망 학습시키기
-