AIDE 2급 기출문제와 이론에 대한 블로그 정보들은 상당히 많다. 그에 비해 AIDE1급에 대한 내용은 상대적으로 적다. 아마도, AIDE 2급을 취득한 분들이, 이 자격증의 효력에 대해 의구심을 품고, 1급은 굳이 취득할 필요 없다고 생각하고 취득하지 않았기 때문으로 보인다. 그럼에도, 나는 AIDE1급도 취득하기로 결정했기 때문에, 해당 자격증 취득을 준비해 본다.
AIDE 2급 취득 이후, 크라우드웍스에서 [1급 응시권+이론 강의] 상품을 구매하여 학습했다. 2급은 내일 배움 카드 교육 후 온라인 상의 공유된 정보들만으로 취득이 가능했지만, 1급은 내일배움카드 교육과 온라인 상의 이론 정리 내용만으로는 안정적으로 합격하기에는 다소 난이도가 높다는 조언과 후기들이 많았기 때문이다.
그렇기에, 내일배움카드 검수자 양성 과정을 이수한 이후, 이번에는 크라우드웍스에서 이론 강의도 별도로 구매했다. 그런데 AIDE 1급 이론강의를 들어보니, AIDE 2급 시험 범위와 거의 80%가 겹쳤다. 이론 강의를 들으면서, 괜히 구매했나 싶은 생각이 들기도 했다.
그럼에도 단순 키워드 중심으로 이론을 확인했을 때에 비해서는 각 개념에 대한 이해도가 올라가는 것도 사실이다. 또 AIDE 2급 내용에서 좀 더 심화된 내용까지 다루고 있기에, 안전한 합격을 위한 심리적 방어선 정도의 역할을 해준다. 또 학습 자료나 구체적인 설명을 제공해 주고, 특히 이론 부분에 대한 관련 이미지와 설명, 즉 시각화된 자료를 통해 이해력을 높일 수 있다는 장점이 있기에, 1급을 취득하기로 결정하고, 시험을 준비 중이라면 합격 안전성을 높이기 위해 크라우드웍스 이론 강의를 수강해 보는 것도 나쁘지 않다.
어쨌든, AIDE1급 이론 파트의 경우, AIDE2급 이론 파트와는 달리 단순 키워드 중심의 빈칸 넣기 같은, 바로 답이 보이는 유형의 문제가 아니라는 후기들이 많다. 특정 개념에 대한 응용문제들로, 개념에 대한 이해를 기반으로 사례를 구분해 내야 하는 문제들이 출제된다고 한다. 그래서 각 용어에 대한 개념을 정확히 이해하는 게, 정답률을 높이는 방법이다.
반면, 실습 파트는 AIDE2급 시험과 마찬가지로 쉽다는 후기가 많다. 어쨌든, AIDE 1급 기출 파트를 적용한 이론들을 정리해 본다. AIDE 2급 기출 문제 범위와 공부해야할 부분이 거의 흡사하다는 것을 알 수 있다.
이미 AIDE 2급을 취득하신 분이라면, 2급 내용을 복습개념으로 접근하고, 1급 이론에서 새로 추가된 개념들만 익혀도 충분히 이론 파트 시험 대비가 가능할 것으로 보인다. 해당 내용과 함께 2급 기출문제도 함께 병행하는 것이 좋다.
AIDE 2급 이론 정리 및 기출문제 모음(인공지능 학습데이터 전문가)
AIDE2급 시험 문제는 인공지능 이론 20문제, 실습관련 문제 30문제로 구성된다. 실습 관련 문제는 내일배움카드 작업자 양성 기초 과정을 배운 것만으로 충분히 커버 가능할 난이도라는 후기가 많
g-sik.tistory.com
*공부를 위해 해당 글을 활용할 경우 PC버전으로 보실 것을 추천드리며, 설명 부분은 이론 내용을 보며 개인적으로 이해한 내용을 정리한 것이다.
AIDE1급 기출 문제 및 이론 정리
인터넷상에서 찾아볼 수 있는 AIDE1급 기출 문제 파트를 이론에 적용해 기록해 본다. 2급이 영어 단어와 개념을 묻는 형태가 많았다면, 1급의 경우 해당 용어에 대한 설명을 디테일하게 알아야 문제를 풀 수 있다고 한다. 핵심 용어와 그 용어에 대한 정확한 개념을 잡는 방식으로 공부해야 한다! 고 한다.
전체적인 흐름과 맥락을 이해하면 보다 쉽게 접근이 가능하다고 생각한다. 맥락을 이해하고, 핵심 용어와 시험이 출제되는 부분을 학습하자.
먼저, 인공지능을 도입한 웹 서비스나 어플이 어떤 과정을 거쳐 개발되는지에 대한 내용이다.
인공지능을 학습시키기 위해서는 방대한 데이터가 필요할 것이며, 해당 데이터들을 수집한 후에는 인공지능이 학습 가능한 형태로 변환하는 과정이 필요할 것이다.
이후 그 데이터들을 학습하기 위한 인공지능 모델을 만들어야 한다. 인공지능 모델을 한 번에 뚝딱 만드는 것은 불가능하기에, 지속적인 수정과 업데이트 과정을 거치며 최적화시켜나가야 한다.
이런 과정을 거쳐 만들어낸 인공지능 모델은 우리 같은 일반인이 사용하기에는 난해한 형태다. 그렇기에 일반인들도 쉽게 사용할 수 있는 형태로 다시 다듬어 주어야 한다. 그래야 사람들이 편하고 쉽게 이용할 수 있을 테니 말이다. 이 과정들을 아래와 같은 4단계로 나눌 수 있다. 각 단계에 대해 알아보자.
[인공지능 서비스 개요] : 총4단계!
1) 데이터 획득 > 2) 데이터가공(전처리) > 3) 모델생성 > 4) 실시간서비스(API개발)
*1),2)는 빅데이터 부분에 해당, 3),4)번은 인공지능의 실질적인 서비스 구현 단계에 해당한다. 그렇기에 4차 산업혁명의 핵심이 빅데이터와 AI다. 인공지능 구현에 있어서 빅데이터가 중요한 이유이기도 하다.
각 단계에 대해 알아보자.
반응형
1) 데이터획득 단계
IOT기계, Mobile, M2M을 통해 데이터 수집하는 과정
(M2M = 최근 데이터 수집은 사람이 아닌 기계를 통해 자동으로 수집하는 방법을 사용)
* AIDE 2급 시험과 겹치는 내용이다. 어쨌든 M2M의 개념과 M2M이 데이터 획득 단계에 포함된다는 것을 기억하자.
* M2M(Machine To Machine)이란?
: 사물지능통신(IOT)을 의미. 기계간의 통신 및 사람이 동작하는 디바이스와 기계간의 통신을 말하며, 인간의 개입 없는 무인화, 지능화 서비스를 의미한다. > 현재는 IoT와 스마트폰의 발달로 더 많은 데이터를 수집할 수 있게 되었다.
2) 데이터 가공(전처리) 단계
수집된 데이터는 기계가 사용할 수 있게 가공해야 한다. AI가 학습 가능한 형태로 데이터를 만들어주는 과정이다. 때문에 가장 중요하며, 가장 많은 시간이 소요된다. 그렇기 때문에 데이터 라벨러들에게 일을 맡기는 것.
> 데이터 라벨링, 구분/선별, 포맷 변경, 결합/변형 등 과정 거침
> 2급에서 다뤘던 내용과 동일하다.
* 데이터 라벨링 : 사람이 만든 사진, 문서 등의 데이터를 인공지능이 학습할 수 있는 형태로 가공하는 작업
3)모델생성
: 가공된 데이터를 이용하여 인공지능 모델을 생성하는 단계.
모델생성 과정 : 1)모델개발> 2)데이터입력> 3)데이터학습> 4)모델수정 (전체과정반복)
1)모델개발과정은 인공지능이 학습할 수 있는 모델을 개발하는 단계라고 이해할 수 있다. 즉, 학습 프로그램을 개발하는 단계다 (= 프로그램 개발 단계)
2) 데이터입력 : 라벨링 데이터를 입력하는 단계
3) 데이터 학습 : 입력된 데이터로 인공지능 학습 진행(자동으로 사람 개입 없이 진행)
4) 모델수정 : 인공지능 모델이 생각보다 성능이 좋지 못하거나, 인식 기능이 떨어질 때 성능을 높이기 위해 모델 수정 및 데이터 수정 작업을 진행하는 단계.
> 많은 시간 소요 되는 과정이다. 위 과정 중 데이터 입력과 데이터 학습에 사용되는 데이터를 만드는 것을 데이터 라벨링이라고 한다.
4)실시간서비스(API개발)
> 실제 우리가 필요한 서비스로 개발하는 과정이다. 웹서비스나 스마트폰 어플이 이에 해당할 수 있다.
> 모델 생성을 통해 개발된 인공지능 모델은 사용자가 쉽게 접할 수 있는 형태가 아니다. 수치 정보만을 표시한다(동물일 확률 80%입니다 같은 느낌). 그렇기 때문에, 이를 사용자들이 볼 수 있는 형태로, 즉 일반적인 사람들 누구나 편하게 이용할 수 있는 형태로 변화시킬 필요가 있는데, 그 과정이 API개발 과정이라고 볼 수 있다. 보편화시키는 것이라고 이해하면 될 듯하다.
보다시피 AIDE 2급과 굉장히 많이 겹치는 것을 알 수 있다. 계속 해서 인공신경망과 관련된 이론들이다. 2급 시험에서는 신경망의 구조에서 많은 문제가 출제됐었다. 추가로 AI, 머신러닝, 딥러닝의 관계를 이해하고 각 차이점들을 명확히 이해하고 있는게 중요하다.
[인공지능의 원리]
인공지능(AI) : 사람의 뇌구조를 그대로 컴퓨터로 구현한 것. 사람의 뇌 신경세포(뉴런)를 컴퓨터로 그대로 모방해서 만든 것이다. 왜 사람의 뇌구조를 그대로 구현하고자 했는지는 밑에 가서 더 자세한 내용을 통해 알아볼 수 있다.
퍼셉트론(perceptron) : 사람의 뉴런 구조를 컴퓨터로 그대로 구현하여 만든 컴퓨터 프로그램 > 인공지능에서 가장 중요한 개념이다. 퍼셉트론을 통해 인공신경망을 만들 수 있고, 좀 더 복잡하게 구현하면 다양한 머신러닝 알고리즘을 구현할 수 있다.
- 1957 프랑크로젠블라트가 고안한 알고리즘
- 딥러닝(신경망)의 기원이 되는 알고리즘
- 딥러닝을 배우기 위해서, 퍼셉트론의 구조를 배우는 것이 매우 중요
- 이를 계기로 기계가 사람처럼 학습하고 예측, 판별할 수 있는 딥러닝과 같은 인공지능 알고리즘이 발전하게 되었다.
- 퍼셉트론들이 모여 인공신경망을 만든다.
[인공신경망의 표현 방식]
(ANN) 인공신경망 : 생물학의 신경망에서 영감을 얻은 학습 알고리즘
인공신경망의 구조 : 입력층(input layer) - 은닉층(hidden layer) - 출력층(output layer)
input layer : 학습하고자 하는 데이터를 입력하는 층
hidden layer : 입력된 데이터를 여러단계로 처리하는 층으로 가장 중요한 층
output layer : 처리된 결과를 출력하는 층
[인공지능 방법론(인공지능의 분류)]
인공지능의 종류를 알아보고 포함관계를 이해하는 게 중요하다.
인공지능 > 머신러닝 > 딥러닝
* 인공지능이 가장 상위 개념임을 이해하면 된다.
인공지능(AI) : 인간의 지적능력을 컴퓨터로 구현하는 단계(최종목적)
인공지능은 최종 목적이다. 인간의 지능을 기계를 통해 구현하고자 하는 것. 즉 인간과 똑같은 기계를 만드는 게 최종 목적이다. 예전 영화에서나 보던, 정말 인간과 같은 기계를 만들어 낸다는 것은 어려운 일일 것이다. 그렇기 때문에 아직 도달하지 못한 영역이다. 때문에 최종 목적이라고 이해하면 된다.
현재는 인공지능을 만들기 위해, 특정한 일(업무)을 인간처럼 할 수 있을 정도로만 만들어 두었다. 이게 현재 기술로 가능한 인공지능 개발 단계이다. 어떤 특정 업무를 잘 수행하는 정도다. 그런데 만약, 이런 각각의 특정 업무들을 모두 학습시키고 구현할 수 있게 만든 후, 그 모든 능력들을 합쳐버린다면? 모든 일을 잘하는 진짜 인공지능을 만들 수 있을 것이다.
머신러닝(ML) : 기계로 학습하며, 사람이 필요로 하는 5가지 기능을 수행한다. 이 기능들 만으로 대부분의 기능을 수행할 수 있다.
5가지 기능 : 1)지능형 에이전트 2)행동,협업 지능 3)추론,지식 표현 4)상황, 감정이해 5)시각,언어,청각 기능
이처럼 정해진 업무를 스스로 학습할 수 있도록 하는 알고리즘을 머신러닝이라고 한다. 외부에서 주어진 데이터를 통해 스스로 학습하여 기계의 성능을 향상하는 기술이다. 기계를 학습시키는 방법에는 여러 가지가 있다. 사람이 직접 입력하여 프로그램을 만드는 경우도 있고, 기계가 학습하여 프로그램을 만드는 경우도 있다.
그런데, 머신러닝을 위해서 다양한 종류의 프로그램으로 학습을 시키다 보면 비효율적이다. 왜? 사공이 많아서. 즉, 가르치는 스타일이 다 다르기에, 오히려 비효율적인 학습이 진행될 수 있다. 그래서 사람들은 더 효율적으로 기계를 학습시키는 방법을 고민하게 된다. 만약 기계가 사람처럼 학습하면 어떨까?라는 생각을 하게 되고, 그래서 등장하는 게 '딥러닝'이다.
딥러닝(DL) : 기계를 학습시키는 가장 좋은 방법이다. 아까 위에서, 사람처럼 학습시켜 보는 방법을 생각해 냈다고 했다. 그래서 인간의 뇌의 구조이자, 인간의 뉴런과 비슷한 인공신경망을 만들어서 학습시켜 버린다.
실제 기계를 학습시킬 때 사람이 생각하고 행동하는 방식으로 기계를 학습시켜 봤더니, 놀라운 성능 향상을 하게 된다. 그게 바로 '딥러닝'이다. 머신러닝의 한계를 넘어서는 기술이자, 최근 대부분의 머신러닝은 딥러닝 기술을 사용하여 개발하는 경우가 많다. 성능도 좋다.
결국, 딥러닝은 머신러닝, 즉 기계를 학습시키는 방법 중 최근 가장 많이 사용하는 기술인 것이다. 딥러닝은 머신러닝의 한 가지에 해당하는 것이다. 따라서 딥러닝이 가장 작은 범위에 해당한다. 머신러닝은 스스로 학습하여 인공지능의 성능을 향상하는 기술로 기계를 학습시키는 방법을 의미하며, 이러한 기술을 바탕으로 실제 인간의 지적능력을 가진 컴퓨터를 구현하고자 하는 것이고, 그 최종 목표가 인공지능인 것.
따라서 아까 초반에 말했던 포함관계를 이해할 수 있다. 인공지능 > 머신러닝 > 딥러닝
[인공지능 방법론(머신러닝과 딥러닝의 차이점)]
위에서 딥러닝은 머신러닝의 방법 중 한 가지라고 했다.
머신러닝(ML) : 스스로 학습하여 인공지능의 성능을 향상하는 기술
딥러닝(DL) : 인간의 뉴런과 비슷한 인공신경망으로 학습하는 방법. 딥러닝은 머신러닝의 방법 중 한 가지.
우선, 결론부터 살펴보면, 머신러닝과 딥러닝의 차이점은 '기계의 자기 학습 여부'다. 이 말의 의미를 천천히 알아보자.
머신러닝은 데이터의 여러 특징을 사람이 직접 분석하고 판단해 주어야 한다. 즉, 사람의 개입이 반드시 필요하다. 반면, 딥러닝은 사람의 개입이 필요 없다. 학습 데이터를 제공해 주면, 기계가 자동으로 학습 데이터에서 특징을 추출한다. 이렇듯이, 기계의 자기학습 여부가 가장 큰 차이점인 것.
자, 다시 정리하면, 딥러닝은 머신러닝의 방법 중 한 가지다. 머신러닝의 방법에는 다음과 같은 여러 가지 방법이 있다. 1)인공신경망 > 딥러닝 2)결정트리 3)베이즈 네트워크 4)서포트 벡터머신
그런데, 이런 방법들 중에서 가장 효율이 좋은 방법이 바로 인공신경망을 활용하는 '딥러닝'이다. 그리고 이 딥러닝에도 역시 다양한 인공지능 알고리즘들(CNN/RNN/LSTM/GRU)이 있다.
그럼 머신러닝은 어떻게 학습할까? 3가지 방식으로 학습한다.
1) 지도 학습(supervised learning) - 딥러닝
2) 비지도 학습(unsupervised learning)
3) 강화학습(reinforcement learning)
이 중 딥러닝은 지도학습(예측/분류)에 해당한다. 그렇기에 가장 중요한게 지도학습이다.
1) 지도학습 : 문제와 정답을 알려주고, 학습하는 방법이다. 영어유치원에서 애기들한테 영어 가르칠 때, 사과 그림 보여주고 A : apple!! 이 방식과 유사하다. 기계는 수많은 학습 정보를 제공해야만 학습할 수 있다. 때문에 많은 양의 데이터가 필요하다.
이때 데이터를 인공지능이 학습할 수 있는 형태로 만들어 주는 것이 바로 데이터라벨링이다. 인공지능은 지도학습을 통해, 예측과 분류를 할 있게 된다. 문제해결의 대부분이 예측과 분류에 해당한다.
그런데, 지도학습의 가장 큰 단점은 많은 양의 데이터가 필요하다는 것이다. 성능은 좋지만, 방대한 데이터를 위해서는 많은 시간과 비용이 필요하다. [수집 + 라벨링] 작업이 이에 해당할 것이다.
2)비지도 학습 : 답을 가르쳐 주지 않고 학습하는 것. 때문에 정확한 답을 찾기보다는 유사한 답을 찾게 될 것이다. 그렇기 때문에 연관성, 규칙, 군집된 정보들을 찾는 방식에서 많이 사용하는 방법이다.
3)강화학습 : 보상을 통한 학습. 미션 성공시 보상을 주며, 보상을 많이 받을 수 있는 방향으로 학습시키는 방식이다.
처음 '어떻게 인공지능에게 보상을 주지?'라는 생각이 들어서 이해가 안 됐는데, 보상을 주는 게 아니라 보상을 많이 받을 수 있는 방향으로 학습 방향을 잡는다고 생각하면 이해가 간다.
어쨌든 위에서 계속 봐왔듯이 우리는 딥러닝이 가장 중요하고, 그렇기에 지도학습에 대해 아는 게 중요하다. 지도학습을 좀 더 파보자. 비지도 학습보다는 단순하지만, 문제와 정답을 제공해야 하기 때문에, 인공지능 학습을 위한 라벨링 된 데이터가 필요하다.
지도학습은 분류와 회귀에 사용된다.
1)분류(classification) : 말 그대로 분류, 즉 불량 여부 판별 기능이다. 그림을 보고 강아지, 고양이를 구별하는 것 등에 해당한다.
2)회귀(regression) : 학습을 통해 알고 있는 것을 분석한 후에, 모르는 것을 예측하는 것이다. 인류는 사실 미래를 예측하기 위해 수많은 노력을 해왔다. 이전의 날씨 데이터를 분석하여, 내일 날씨를 예측하는 것 등이 해당한다. 또 주식 가격 분석 후, 주가 예상을 하는 등으로도 사용할 수 있을 것이다. 결국, 딥러닝은 예측과 회귀를 통해 여러 산업분야에서 활용 가능하다.
위에서 가장 먼저 다뤘던 부분이 바로 4차산업혁명의 두 축이 AI와 빅데이터라는 점이다. 지금까지 AI에 초점을 맞춘 내용이었다면, 이제는 다른 한 축인 빅데이터에 대한 내용들이 등장한다. 하지만 역시나, AIDE 2급과 상당수가 겹친다는 것을 알 수 있다. 빅데이터의 개념을 이해하고, 특징을 외워두어야 한다. 일단 가보자.
[빅데이터의 이해]
사실 빅데이터라는 용어를 워낙 많이 들어왔기 때문에 굉장히 익숙한 용어이기는 하지만, 명확한 의미를 잡기가 힘들기도 하다. 빅데이터 개념에 대해 한번 이해를 해보고, 그에 기반해 형성된 빅데이터의 특징들도 암기해 보자.
빅데이터라는 개념이 왜 등장했을까?
이전에 데이터는 사람이 직접 수집한 데이터 자료를 입력하거나, 엑셀 파일로 관리하는 등 적은량의 데이터만을 관리했지만, 최근에는 기술 발달과 함께 데이터 양이 폭발적으로 증가하여, 데이터를 체계적으로 관리하는 빅데이터의 개념이 필요하게 되었다.
빅데이터는 단순히 많은 양의 데이터를 의미하지 않는다. 방대한 양의 데이터를 체계적으로 관리하기 위해서 빅데이터라는 개념이 생겨났다. 즉, '방대한 데이터의 관리, 가치 추출'이 핵심이다.
정보가 넘치는 시대다. 포털 유튜브 SNS등, 누구나 정보를 생산하는 시대를 살고 있다. 그래서 정보가 미친 듯이 많아지는 시기이기도 하다. 사람들이 올리는 인스타 스토리, 유튜브, 블로그 글 등. 이 글 역시 하루에 업로드되는 수많은 정보 중 한 가지일 것이다(텍스트 데이터).
어쨌든 요즘 업로드 되는 데이터들은 주로 저장이 어려운 비정형데이터들(음성 영상 등)이 많다. 이런 데이터들이 많아서 기존 방식으로는 모두 처리하기 벅차다. 그에 따라 이런 데이터를 저장, 가공, 처리하는 기술이 필요해지게 된 것이다.
예전에는 정형데이터가 많았는데, 최근에는 비정형 데이터가 많이 발생하고 있다. 이는 시대의 흐름이다.
2급에서 '정형데이터에서 비정형데이터로'라는 의미를 정확히 이해하지 못했었는데, 이제 알겠다.
[시대에 따른 데이터의 변화]
<1970/1980년 메인 프레임 컴퓨터>
정형데이터, 수치화 데이터나, 규칙이 있는 데이터가 많이 발생함
<1980/2000 개인 PC>
개인PC 보급 시작
<2000/2010 인터넷 모바일>
이 시점부터가 비정형데이터가 기하급수적 늘어난다. 아마 SNS, 카카오톡, 이런 것들의 등장으로 동영상 사진, 음성 등의 정보들을 만들고 공유하는 시기가 도래했기 때문으로 보인다. 사실 생각해 보면, 예전 폴더폰 및 슬라이드폰 시절에는 핸드폰으로 인터넷 들어갈 때 비용이 너무 많이 나오기 때문에, 컬러링 바꾸려면, 마음의 준비를 하고 최고의 동선으로 빠르게 들어가서 검색하고 다운로드하고 바로 종료했던 기억이 난다.
근데, 스마트폰 등장과 함께 모바일에서의 인터넷 사용 제약이 거의 없어졌으니, 얼마나 많은 정보들이 생성되고 공유되었을까. 뭐 그렇다. 어쨌든, 비정형 데이터가 늘어나며 빅데이터 시기로 접어들게 된 것이다. 이전에는 기업이 제공하는 정보를 검색, 활용하는 수준이었는데, 인터넷과 스마트폰으로 실시간으로 데이터를 생성하는 시대가 되었다. 누구나 데이터를 생성하는 시기다.
<2020 IT/everywhere>
더 나아가 우리는 인공지능/메타버스의 시대에 살고 있다. 인공지능과 메타버스 역시 빅데이터 기반으로 발전하고 있는 것이다. 핵심은 인터넷, 모바일 시대에 소셜미디어와 스마트폰의 보급으로 빅데이터 시대가 열렸다는 것.
[빅데이터 특징]
초기 빅데이터(3v)는 3가지 특징을 가져야 빅데이터로 규정했다.
volume(규모) : 데이터 양 증가, 수십테라규모, 레코드, 트랜젝션
variety(다양성) : 이전에는 데이터베이스에 정해진 규칙을 저장하는 방식이었다면, 빅데이터는 정해진 규칙의 데이터뿐만 아니라 반정형 비정형 데이터 등 데이터의 형식에 관계없이 처리해야 한다.
velocity(속도) : 실시간 처리, 실시간 분석, 스트림
빅데이터 특징 중 다양성에 대해 더 알아보자.
- 정형데이터(structured) : 구조화된 데이터
고정된 필드에 저장된 데이터 (데이터베이스, 엑셀, CSV) 엑셀데이터, 고객데이터, 거래처 데이터 등 정해진 규칙에 맞게 순차적으로 저장된 데이터, 보편적 데이터를 의미한다. 가장 흔한 형태의 데이터다.
- 반정형데이터(semi-structured) : 고정된 필드는 아니지만, 스키마를 포함 연산불가(XML, HTML, JSON등)
우리가 자주 보는 홈페이지의 경우 HTML이라는 형태의 언어로 되어 있다. 정형데이터와 비정형데이터 중간 정도의 데이터 형태다. 일반인보다는 프로그램을 개발하는 개발자나 관련업 종사자들이 자주 사용하는 형태의 데이터로 웹, 스마트폰 어플 개발을 위해 반정형 데이터가 필요하다. 인공지능 서비스를 개발하거나 웹서비스 개발에 많이 사용하는 방식이며, 데이터를 쉽게 가공하여 사용할 수 있는 형태로 개발자들이 많이 사용하는 방식이기도 하다.
- 비정형데이터(unstructured) : 고정되지 않은 데이터, 연산불가, 형태없음(소셜데이터,영상,음성,이미지) 소셜미디어의 데이터, 영상, 음성데이터, 이미지 등의 데이터 형태나 형식이 일정하지 않음. 비정형데이터의 증가에 따라 빅데이터가 필요해지게 되었다. 이런 데이터를 저장하고 가공하고 분류 및 분석하여 서비스를 만들기 위해 빅데이터가 필요하다. 최근 이런 데이터가 폭발적으로 증가 중이다. (텍스트, 동영상, 음성, 센서, GPS, 소셜미디어)
그 외 빅데이터의 특징을 4v, 5v로 표현하기도 하는데,
정확성(4v) veracity
가치(5v) value
가 있다. 함께 알아두자.
계속해서 빅데이터의 특징에 대한 내용들이다. 인공지능 개발 소요시간 백분율에 대한 문제도 출제된다고하니, 외워두자.
[인공지능 빅데이터 활용]
위에서 알아봤듯이, 단순히 데이터 양이 많다고 빅데이터가 아니다.
대량의 정형(수치화 가능), 비정형 데이터(영상 등)로부터 가치를 추출하는 기술을 빅데이터라고 한다.
이런 광범위한 데이터를 처리하는 기술을 의미한다. 빅데이터에 대해 더 자세히 알아보자.
[빅데이터 특징]
<대량의 모든 데이터> :
(컴퓨터, 인터넷 등 발생 데이터) 예전에는 필요 없는 데이터는 저장하지 않았는데, 요즘에는 모든 데이터를 저장 중이다.
<데이터의 가치와 결과분석 기술>
단순히 데이터를 저장하는 것을 떠나서, 데이터관리 데이터 분석등의 과정을 통해서 새로운 가치를 창출한다.
<빅데이터 플랫폼의 등장>
데이터의 종류가 다양해졌기에 데이터를 관리하는 하드웨어, 소프트웨어, 어플리케이션이 등장해 효율적 관리가 가능해졌다.
<대규모의 데이터 관리 기술 등장>
이전에 없던 대규모의 데이터를 저장, 관리, 분석하는 하드웨어, 소프트웨어, 유통 및 활용 기술이 나오면서 빅데이터를 관리할 수 있게 되었다.
[인공지능과 데이터의 상관관계]
인공지능의 성능은 양질의 데이터와 상관관계가 있다. 좋은 음식을 먹어야 사람이 건강해지는 원리와도 같다.
때문에 인공지능의 성능향상을 위해 양질의 데이터가 충분히 제공되어야 하고, 이 학습에는 라벨링 된 데이터가 필요한 것이다. 이러한 가공 과정이 데이터라벨링. 양질의 데이터를 만드는 작업을 데이터라벨러가 수행하는데, 양질의 데이터는 작업 가이드에 적합하게 가공된 데이터를 의미할 것이다. 그렇기에 데이터라벨링 작업에 작업자와 검수자를 별도로 두어 서로 더블체크할 수 있도록 구조를 만들어 두었다고 생각한다. 작업자는 반려받지 않으려고 최대한 노력하게 되고, 그럼에도 발생하는 오류를 검수자가 잡아내는 구조를 만들어 둔 것이다.
[인공지능개발에 소요되는 시간]
인공지능 기업이 프로그램을 개발할 때 데이터처리에 80%의 시간을 소요한다. 여기서 데이터 가공은 데이터의 표준화를 의미한다. 인공지능이 학습할 수 있는 데이터를 만드는데 약80% 시간이 소요되며, 인공지능 모델을 만들고 서비스를 모두 개발하는데 약 20%의 시간이 소요된다.
데이터를 처리하는데 가장 많은 시간이 소요됨을 의미한다. 그래서 데이터가 중요한 것이다. 위에서 말했듯이, 양질의 데이터를 확보하는 것이 인공지능의 품질에 영향을 주기 때문이다.
*백분율 :
데이터처리 80%(= 식별5%+수집10%+정제25%+라벨링25%+증강15%)
인공지능개발 20%(=서비스배포2%+모델조정5%+모델학습10%+알고리즘개발3%)
그럼 데이터 라벨링은 어떤 과정을 거칠까?
[데이터 라벨링 과정]
1)데이터 정의 : 어떤 기능을 수행하는 인공지능인지, 어떠한 데이터가 필요한지 분석하고 확보해야 하는 데이터에 대해 정의하는 과정. 정의된 데이터는 구축계획서로 작성한다. 데이터의 종류, 수량, 형태 등을 정리하여 문서화하는 과정을 통하여 구축계획서를 만든다.
2)데이터 획득 : 데이터는 기존 보유한 데이터뿐만 아니라, 인터넷이나 다양한 경로로 확보한다. 최대한 데이터 확보하는 게 중요하며, 부족한 데이터는 크롤링 작업을 통해 추가적으로 확보한다. 크라우드웍스에 있는 사진 찍기 등의 작업이 있는 이유다.
3)데이터정제 : 획득 데이터를 인공지능이 학습할 수 있는 형태로 분류, 가공, 변형 등의 과정을 통해 원천데이터를 생성하는 과정이다.
4)데이터라벨링 : 원천데이터를 확보한 후 라벨링 작업으로 인공지능이 학습 가능한 형태로 만들어 준다.
강의 수강 중 아래와 같은 내용들을 확인할 수 있었는데, 이에 대한 설명은 없이 지나갔지만 찝찝하니 외워두는 것도 나쁘지 않다.
라벨링의 종류
PASCAL VOC > XML형식으로 라벨링이 저장된다
YOLO > text형식으로 라벨링이 저장된다.
CreateML >json형식으로 라벨링이 저장된다
5)데이터 학습 : 인공지능 학습을 위해서는 데이터셋(원천데이터+라벨링데이터)이 필요하다. 인공지능 학습을 위해서는 2개의 파일이 꼭 필요하다.
*데이터셋 : 인공지능 학습에 필요한 데이터를 관련성 있게 모아둔 것.
원천데이터와 라벨링데이터를 모아놓은 자료의 집합. = 원천데이터 + 라벨링데이터
*원천데이터 : 데이터 정제 과정을 거친 데이터
[데이터셋 관리 시 주의사항]
관리를 잘못하여 원천데이터는 보관하고 라벨링 데이터를 분실할 경우, 당연히 라벨링 작업 다시 해야 한다. 당연히 원본데이터도 분실하면 안 될 것이다.
[빅데이터 처리과정]
그럼 실제 빅데이터는 어떻게 처리될까?
6단계를 알아보고 이해해 보자.
1)데이터소스 > 2)수집 > 3)저장 > 4)처리 > 5)분석 > 6)표현
1)데이터소스(내부데이터/외부데이터/미디어) : 우리가 흔히 보는 데이터를 의미한다.
- 내부에서 보유하고 있는 데이터(내부데이터)
- 외부에서 가져오는 데이터(외부데이터)
- CD나 파일 같은 미디어를 통해 수집하는 데이터를 의미(미디어)
2)수집(수집/자동) : 데이터 소스로 확보할 수 있는 데이터가 부족할 경우 수집 단계로 돌입한다. 데이터 수집 과정은 사람이 직접 입력하거나 자료를 수집하는 과정과, 프로그램을 통한 자동 데이터 수집 방식이 있다.
> 이때 데이터를 자동으로 수집하는 프로그램을 크롤링(crawling)이라 한다.
> 크롤링은 인공지능에서 데이터를 수집하는 중요한 방법 중 하나다.
> 프로그램을 통해 인터넷이나 특정 사이트에서 정보를 수집하는 행위를 의미한다 : 인터넷의 방대한 데이터를 우리가 분석하고 활용하기 쉽게 데이터를 수집하는 행위
- *크롤러 : 크롤링하는 프로그램을 크롤러라고 한다.
- 크롤링의 원리: 인공지능을 학습시킬때 데이터를 모두 보유하고 있는 경우는 많지 않다. 따라서 인터넷이나 특정사이트 또는 공공데이터 서비스 등에서 데이터를 취합해야 하는 경우가 많은데 이때 사용한다.
크롤링의 대부분은 개발자들이 직접 용도에 맞게 개발하여 사용하는 경우가 많다. 데이터 수집단계에서 공공데이터를 사용하는 경우도 많다. 블로그 글이나 기사등을 끌어올 것으로 예상한다.
3)저장 (정형,비정형/데이터등급/장치)
1) 2)를 통해 확보한 데이터를 체계적으로 분류 및 정리하여 컴퓨터의 데이터베이스에 저장하는 단계다. 이 단계에서 데이터 유형을 분류(정형, 비정형 등으로)하고, 데이터를 등급별로 구분하는 작업을 수행한다.
이렇게 저장된 데이터는 빅데이터 분석, 인공지능 학습에 사용된다.
4)처리(일괄처리/실시간배치/분산병렬처리)
저장된 데이터베이스의 데이터를 인공지능이나 빅데이터 등에 활용 가능하도록 일괄처리, 실시간 배치 ,분산병렬처리하여 가공하는 단계
5)분석(전처리/분석방법)
일괄 처리된 데이터를 인공지능이나 빅데이터가 학습 또는 처리하기 쉽도록 전처리하는 과정과 데이터를 처리하여 결과를 분석하는 단계다.
이 과정에서 분석방법은 빅데이터의 경우, 데이터에서 다양한 정보를 추출하여 분석하고, 인공지능의 경우, 학습을 통하여 인공지능 모델을 완성하는 단계에 해당한다.
6)표현(표현 서비스)
실제 분석하고 처리한 내용을 사용자들이 볼 수 있는 형태의 도표, 그래프, 이미지 등으로 표현하거나, 웹서비스 등으로 개발하는 표현 단계다. 위에서 계속 언급해 왔던, 일반인도 사용하기 쉽게 보편화시키는 단계라고 이해해 볼 수 있다.
* 일반 사용자들은 데이터 소스, 수집, 처리, 분석단계는 확인이 불가능하며, 표현 단계의 최종 결과물만 확인 가능하다.
[빅데이터와 API]
위에서 배운, 빅데이터 수집을 위해 크롤링 방식으로 공공데이터를 긁어 올 때, API라는 방식을 사용한다.
(= Application Programming Interface)
- 미리 데이터를 쉽게 가져갈 수 있도록 만들어 놓은 일종의 프로그램이다.
- 쉽게 많은 데이터를 검색할 수 있고, 개발자는 데이터를 가져오는 시간을 단축할 수 있어 최근에 많이 사용.
- 공공데이터 또는 인공지능개발에 많이 사용하는 방법으로, 누군가 만든 프로그램을 쉽게 사용하도록 구성한 프로그램이다. 보유 중인 데이터를 허가받은 사람만 사용할 수 있도록 인증키를 제공하여, 인증키가 있는 사람만 사용할 수 있도록 제공하는 경우가 많다. 인공지능과 빅데이터에서 보편적으로 사용하는 방법이다.
[API의 동작원리]
사용자가 스마트폰이나 웹사이트에서 특정 정보의 검색을 요청하면, 그 데이터가 보관된 데이터베이스에서 정보를 검색하고자 할 경우, 필요한 정보 검색을 쉽게 할 수 있도록 미리 프로그램을 개발하여 개발자에게 제공하는 것을 의미한다.
즉, 개발자가 쉽게 정보를 취합하여 사용자에게 제공하는 프로그램을 개발하는 것을 의미한다. 사용자가 요구하는 정보를 개발자가 개발하지 않고, 기조에 개발된 프로그램을 사용하여 서비스를 제공하는 개념이다. 개발시간을 단축할 수 있는 방법이다.
한 줄로 정리하면 아래와 같다.
[API]란, 보유한 데이터 프로그램을 허가받아 각자의 [인증키]로 사용할 수 있도록 사용하는 방식
[크롤링]이란, 인터넷의 방대한 데이터를 우리가 분석하고 활용하기 쉽게 수집하는 행위
다음은 인공지능 알고리즘, 객체검출 방법에 대한 이론이다. 역시 AIDE2급 내용과 겹친다. 출제포인트도 결국 겹칠 것이다.
[인공지능 객체검출 방법의 이해]
우선 핵심은 아래와 같다.
single object : 인공지능이 객체를 1개만 검출하였을 때
multi object : 2개 이상의 객체를 검출한 경우
1.인공지능 객체검출 방법의 이해 : single object = classification + localization
: 검출하고자 하는 객체가 하나인 경우의 처리방식 학습한 데이터가 1개만 있는 경우는 분류에 해당한다.
1단계) classification : 객체가 1개이기 때문에, 그 객체가 어떤 종류인지 판별하는 것.
- 학습을 통하여 1개의 object를 찾는 것을 분류라고 한다.
- 인공지능이 데이터셋(데이터와 정답 레이블)을 함께 학습하고, 이를 토대로 새로운 이미지를 식별하게 되는 과정이다. 예를 들어, 강아지 사진을 본 AI가 이를 강아지라고 인식하는 것과 같다. 이때 학습되지 않은 class는 인식하지 못한다. 무슨 말이냐 하면, 만약 고양이가 학습이 안되어 있으면, '이게 뭐지?' 하고 인식하지 않는다는 것이다. 즉, 아직 배우기 전이라 인식을 못한다는 뜻.
2단계) 영역표시(localization) : 분류를 통하여 검출한 객체의 정보가 있는 위치를 보기 쉽게 box형태로 지정하는 것을 의미한다. 인공지능은 찾아낸 객체가 어디에 위치하여 있는지 알아내야 한다. 학습을 통해 객체 위치를 알게 되고, 객체의 위치를 네모 박스로 지정한다. 이때, 이러한 네모 박스를 바운딩박스라고 한다.
* 바운딩박스 : 찾아낸 위치를 네모박스로 그려놓는 것
2.인공지능 객체검출 방법의 이해 : multi object
1)객체검출(object detection) : 여러개의 객체를 검출하는 것.
- 학습을 통하여 여러 개의 객체를 인식하고, 인식된 객체를 바운딩박스와 색을 이용하여 영역을 표시하는 과정이다. 객체검출은 여러개의 객체를 찾아낼 때 사용하는 방식이다. 대부분의 인공지능의 적용은 객체검출이 목표라고 할 수 있다. 여러 객체를 각각 바운딩박스로 구분하고 서로 다른 색으로 구분한다. 예를 들어 도심 사진에서 차량, 사람을 각각 다른 바운딩박스로 구분하는 것이 해당될 것이다.
2)세그맨테이션 : 의미적 분할(instance segmentation) : 객체인식에서 이미지 내의 의미 있는 단위로 분할하는 작업이다. 정교하고 복잡한 인공지능 구현을 위하여 이미지의 영역별 의미를 부여하는 경우 사용하는 방식이다. 포토샵으로 이미지를 뜯어내는 것과 같이(누끼 따기), 필요한 영역 부분을 지정하는 방법이다. 세그멘테이션은 자율주행 분야에 많이 사용한다. 도로, 건물, 횡단보도, 사람, 하늘 등의 객체를 의미별로 구분하여 자동차가 해당 위치를 이동할 수 있는지 여부를 판단하기 위함이다.
객체를 세그멘테이션으로 인식하기 위해서는 데이터라벨링도 세그멘테이션으로 만들어 주어야 하기 때문에 라벨링에 많은 시간이 소요된다. 데이터만 있으면 인공지능이 알아서 학습할 것 같지만, 실제로는 표지판을 보고 글자를 구분해 내는 작업을 처리하기 위해, 많은 양의 데이터를 가공하여 학습데이터로 제공해야만 한다. 이 작업을 위해 데이터라벨러가 필요하다.
다음은 딥러닝에 관한 이론이다. 이 부분에는 AIDE2급과 겹치는 부분도 있고, 새롭게 추가되는 부분도 있다. 따라서 AIDE1급 대비를 위해서는 이 파트를 잘 숙지해야 할 것으로 보인다. 이론 강의를 통해, 시각정보를 확인하며 제대로 이해할 것을 추천한다. 물론 딥하게 다뤄주지는 않는다.
[딥러닝의 동작원리]
딥러닝은 7만개의 데이터를 8:2로 나누어 사용.
8은 훈련데이터(train) : 6만개
2는 평가데이터(test) : 1만개
훈련데이터 6만 개로 훈련하고, 훈련 후 평가데이터 1만 개로 훈련의 성능을 평가한다.
구체적인 내용은 예시를 통해 확인해 보자. 수능시험을 예로 들면, 6,9월을 포함한 모의고사가 훈련데이터(train)인 셈이다. 모의고사를 거치며 오답 발생 시 반복 학습으로 오답 줄여간다. 이런 반복 학습을 epoch(에포크)라고 한다. 에포크는 학습을 몇 번 하는지의 반복 수를 의미한다. 예를 들어, 1번 반복했으면 1에포크라고 한다. 보통 우리 시험 공부할때 '몇 회독했어?'와 같은 의미라고 본다. 반복할수록, 성능이 높아진다. 수능은 test데이터에 해당하는 셈이다. 반복 학습을 통해 손실을 줄이고 정확도를 높이는 게 핵심이다.
인공지능에서 평가는 예측(predict)이라는 표현을 사용한다. 훈련 셋(train)은 여러 번의 학습을 하고, 평가(시험셋test)는 한 번만 수행하게 된다. 평가셋으로 작년 수능 문제를 마지막으로 한번 풀고, 이제 실전인 올해 수능을 보는 것이다.
정리해 보면, 딥러닝 학습을 위해서는 (훈련) 데이터와 (평가) 데이터가 필요하다. 데이터를 두 가지로 나누어 사용하기 때문에, 인공지능에게 최대한 많은 데이터를 확보해 주는 게 중요하다.
[인공지능 프로그램의 개발 절차 : 5단계]
1: 라이브러리 읽어 들이기
> 처음부터 끝까지 모든 것을 다 개발하는 게 아니다. 전문가들이 만들어 둔 라이브러리를 이용하여 개발한다. 라이브러리를 이용하면 개발 시간과 비용을 줄일 수 있다. 기초적인 틀을 가져와서 작업하는 방식이라고 볼 수 있다.
2: 데이터 읽고 전처리하기
> 학습용 데이터인 라벨링 데이터를 불러들이고, 필요한 용도에 맞게 전처리(가공) 한다.
3: 신경망 만들기
> 1,2 과정에서 불러온 데이터로 만들고자 하는 신경망을 만든다.
4: 모델만들기 + 학습하기
> 신경망을 만든 다음에, 라벨링 된 데이터로 인공지능을 학습시킨다.
5 : 모델 적용하기 : 예측하기
> 개발 완료한 인공지능 모델이 잘 작동하는지, 실데이터를 적용해서 성능을 평가한다.
2단계와 4단계는 데이터를 사용하는 부분이다. 3단계와 5단계는 인공지능을 개발하는 부분이다. 데이터와 인공지능이 잘 조합되어야 좋은 결과물이 나온다. 그래서 4차 산업의 핵심이 빅데이터와 AI인 것.
5단계까지 진행했는데 성능이 구리다면, 데이터 문제인지 신경망 문제인지 분석해서 문제가 되는 해당 단계를 계속 수정하는 방식이다.
[딥러닝의 구조]
기계가 자동으로 대규모 데이터에서 패턴과 규칙을 학습하는 것을 의미한다. 학습 기반 의사결정으로, 예측활동을 수행한다. ANN을 사용하여 머신러닝 학습을 수행한다.
인공신경망과 심층신경망의 차이는 은닉층(hidden layer)의 구조가 다르다는 점이다. 심층신경망은 은닉층이 하나 이상의 복잡한 구조를 가지고 있다.
심층신경망(Deep Neural Network) : DNN의 구조
input layer > hidden layer > ouput layer 이러한 구조에서 은닉층이 여러 개의 복잡한 구조를 가지고 있다.
은닉층은 퍼셉트론으로 구성되어있다. 퍼셉트론은 : 입력값, 가중치, 입력총합, 활성화함수, 출력값으로 구성된다.
그리고 이런 구조를 가지고 있는 형태를 노드라고 표현한다.
노드에 가중치를 곱해 모두 더한다. 그 후, 노드와 가중치의 합을 다음 노드나 레이어에 보내기 위해 출력을 어떻게 줄 것인지를 결정한다. 출력을 어떻게 보내주는지에 따라 인공지능의 성능이 달라진다. 출력을 어떻게 보낼지 결정하는 함수를 '활성화함수'라고 한다.
[활성화 함수]
= 입력된 데이터의 가중치의 합을 출력 신호로 변환하는 함수 = activate function
= 활성화 함수에 따라 인공지능의 성능이 결정된다.
활성화 함수의 종류에는
1) 시그모이드함수(sigmoid)
2) 쌍곡선함수(tanh)
3) 렐루함수(ReLU) 등이 있다.
> 들어가기 전에 : 사실 강의 수강한 이유가 기출 및 이론 정리해 둔 블로그에서 함수 관련 용어를 보고 이 부분은 설명이 필요하겠다고 생각했기 때문이다. 그래서 수강했는데, 그냥 특징만 줄줄이 읊어주신다.. 사실, 심도 있는 인공지능 관련 일을 하는 게 아닌, 단순 노동을 하는 데이터라벨러에게 이러한 이론 교육과 자격증이 필요할까 싶었다. 그저 자격증 구성을 위한, 그들만의 수익 창출 구조의 일환일 뿐이라는 개인적인 생각이 들었다. 어쨌든, 자격증 취득을 위해서는 공부해야 하니, 일단 계속 가보자.
1)시그모이드함수 : S자와 유사한 완만한 커브 형태. 대표적인 logistic함수이며, 모든 실수 입력 값을 0보다 크고 1보다 작은 미분 가능한 수로 변환하는 특징이 있다. 미분 가능한 0-1사이의 값을 반환하기에 logistic classification과 같은 분류 문제의 가설과 비용 함수(cost function)에 많이 사용한다.
어렵다. 함수, 미분 등 대학교를 입학하며 이별했던 친구들이다. 인공지능은 복잡한 수학 공식과 관계가 있기에 입문이 힘든 부분이 있다. 그러니 각 함수의 특징을 그냥 외울 수밖에 없다. 어쨌든, 함수와 관련된 내용을 이해한 선에서 짧게 정리해 보고 넘어가 보자. 인공지능이 데이터를 처리해 낼 때 가장 중요한 게 오류를 줄이는 것이다. 오류를 줄여야 정확한 결과가 나올 테니 말이다. 그 오류를 줄이는 과정에서 함수가 필요하다. 오차를 줄여주는 함수가 몇 종류 있고, 그 함수들에 대해 학습하는 것이라고 생각하면 된다. 어쨌든, 위에서도 말했듯이, 각 함수의 이름과 그 함수의 특징만 매칭시켜 외워두는 게 최선이다.
시그모이드 함수는 모든 실수 입력 값을 0보다 크고 1보다 작은 수로 변환하는 함수다.
2)쌍곡선함수(Tanh) : 함수값을 -1과 1사이의 실수로 제안시킨다. 하이퍼볼릭 탄젠트(Hyperbolic Tangent)라고도 불린다. 경사하강법 사용 시 시그모이드 함수에서 발생하는 편향 이동이 발생하지 않는다. 기울기가 양수 음수 모두 나올 수 있기 때문에 시그모이드 함수보다 효율성이 뛰어나다.
3)ReLU(Recrified Linear Unit) : 은닉층(Hidden Layer) 설계 시 많이 사용되는 함수로, 선형 함수라고 한다. +/- 가 반복되는 신호에서 - 흐름을 차단하는 의미가 있다. 즉, 모든 값의 -는 모두 0으로 변환하는 특징을 가지고 있다. 기울기 소실(Vanishing Gradient) 문제가 발생하지 않기 때문에 많이 사용한다.
> 노드 단위에서 발생하게 되는 처리에 대한 설명이었다. 학습 과정을 통해 학습 진행 시 실제 결괏값가 차이가 발생하는데, 정답과의 차이를 계산하여 정답에 가깝게 처리하여 주는 함수를 [손실함수]라고 한다. 손실함수는 신경망이 학습할 수 있도록 해주는 지표에 해당하며, 머신러닝 모델의 출력값과 사용자가 원하는 출력값의 차이, 즉 오차를 의미한다. 손실 함숫값이 최소화되도록 하는 가중치와 편향을 찾는 것이 학습이다.
손실함수에는, 아래와 같은 2가지가 있다.
1) 평균 제곱 오차> (회귀 regression)에서 사용
2) 교차 엔트로피 오차> (분류 Classification)에서 사용
*활성화 함수 관련 정리해 보자.
활성화 함수는 입력된 데이터의 가중치의 합을 출력 신호로 변환하는 함수로 은닉층에서 많이 사용되는 함수는 (ReLU)함수다.
[경사하강법_Gradient descent)]
인공지능에서는 그래프의 값이 0에 수렴할수록 정답에 가깝다. 인공지능의 그래프는 복잡한 곡선 그래프로 되어있기에, 0에 가장 가까운 그래프의 위치를 찾는 방법이 필요한데, 이를 경사하강법이라고 한다.
최적화 방법 중 하나로, 함수의 기울기(경사)를 구하고, 경사의 절댓값이 낮은 쪽으로 계속 이동시켜 극값에 이를 때까지 반복시키는 것이다. 기울기가 낮으면 낮을수록 정답에 가깝게 된다.
경사하강법의 문제점은 그래프가 복잡할 경우, 가장 낮은 값을 찾기가 쉽지 않다는 데 있다. 이를 해결하기 위해 함수의 가장 낮은 값을 찾아내는 알고리즘을 사용하는데, 이것을 옵티마이저라고 한다.
[옵티마이저(Optimizer)]
함수의 가장 낮은 값을 찾는 방법이다.
Momentum/AdaGrad/RMSProp/AdaDelta/Adam 등이 있다. 현재 가장 많이 사용하는 옵티마이저는 Adam이다.
*경사하강법과 옵티마이저를 정리해 보자.
함수의 기울기를 구하고 경사의 절댓값이 낮은 쪽으로 계속 이동시켜 극값에 이를 때까지 반복하는 것을(경사하강법)이라고 한다. 옵티마이저를 이용하면, 기울기의 가장 낮은 값을 쉽게 찾을 수 있다.
계속해서 핵심 딥러닝 알고리즘에 대해 이해해 보자. 이 부분도 AIDE 2급에 등장했던 부분이다. 물론 새롭게 추가되는 부분과, 좀 더 딥하게 이해할 수 있다. 컨볼루션과 풀링의 역할을 이해하고 기억해보자.
[핵심 딥러닝 알고리즘 이해]
딥러닝 알고리즘은 알고리즘마다 고유의 특징이 있어, 특정한 용도를 위하여 사용하는 경우가 많다.
첫 번째 인공지능 알고리즘은
1)합성신경망(CNN)알고리즘 >사진/영상처리에 많이 활용하는 알고리즘. 합성곱을 사용
2)순환신경망(RNN)알고리즘 > 음성처리에 많이 사용. 계층의 출력이 순환구조
3)생성적 적대 신경망(GAN) > 알고리즘 이미지생성/복원/신경망끼리 경쟁
CNN(Convolution Neural Network) 합성곱신경망
: 데이터의 특징을 분석하여 패턴을 파악하는 구조(convolution + pooling)
ex 우리는 사진 속 사람의 신체 일부만 보고도 사람이라고 인식할 수 있다. 왜냐? 사람의 뇌는 객체(대상)의 특정 부분을 인식하는 기능이 있기 때문이다. 뇌의 시각피질은 특정 필터의 역할을 하며, 사진을 지나가면서 사진의 특징을 빠르게 찾아낸다. 이런 사람의 인지 방식을, 즉 사람의 뇌가 동작하는 방식을 컴퓨터 알고리즘으로 그대로 구현한 것을 합성곱필터라고 한다. 이런 합성곱필터를 이용해 사진의 특징을 찾아 판단하는 방식을 합성곱신경망이라고 한다.
핵심은, 필터가 이미지의 세부적인 특징을 찾아내서, 일부만으로도 해당 객체를 판별해 낸다는 것. 그 원리를 소개하고 있는데, 그냥 이 정도만 이해해도 충분할 것으로 보인다.
>합성곱필터가 사진을 지나가면서 사진의 특징을 찾는 과정
> 합성곱은 사람의 뇌에서 시각을 받아들이는 '시각피질' 구조를 모방하여 만드는 방법
> 사용용도 : 이미지 및 비디오 인식, 추천시스템, 이미지 분류, 의료이미지분석 및 자연어 처리에 응용
이런 과정을 이해하기 위해서 RGB에 대해 알아야 한다. 포토샵이나 일러스트레이터를 다뤄보신 분들이라면 익숙할 것이다. 어쨌든, 인공지능이 이미지를 처리하기 위해서는 컴퓨터의 이미지를 데이터로 읽어 들여야 한다. 이때 RGB의 빛의 3 요소가 조합되어 사진으로 보인다.
컬러이미지의 경우 R(빨강)/G(초록)/B(파랑) 3가지 데이터가 합쳐져서 우리가 보는 색을 구현하는 것. 우리가 보기에는 한가지 색으로 보이는데, 사실 저 3가지 조합으로 우리가 보는 색이 구성되는 것이다.
이때, 각각의 RGB값을 채널이라고 한다. 컴퓨터에서 점 하나는 픽셀이라고 한다. 이 픽셀은 세 가지의 색깔, 삼원색의 조합으로 이루어진다. 픽셀 역시 많이 들어봤을 것이다. 우리가 보는 컴퓨터 화면을 확대해서 보면 네모네모들이 모여서 이미지를 구성하고 있는 것을 알 수 있다.
예를 들어 28X28 크기의 사진이 있다면 실제 구조는 28X28X3의 구조다. 즉, 컬러이미지는 3 채널, 흑백이미지는 1 채널의 데이터로 입력되는 것이다. 합성곱신경망에서는 사진이나 영상이 입력되는 경우가 대부분으로, 이러한 채널 부분은 중요하다. 정확한 데이터가 입력되지 않으면 인공지능은 동작하지 않는다. 합성곱신경망의 특징 중 여러 개의 필터를 이용해 이미지의 세부특징을 추출해 학습을 진행한다.
[채널]
> 컬러이미지는 RGB의 세 가지 채널로 인식되며, 흑백의 경우는 하나의 채널로 인식
> 우리가 사용하는 컴퓨터는 빛의 3요소로 구성되어 하나의 사진은 빨, 초, 파 3가지 채널로 구성되어 하나의 이미지로 완성된다.
[필터]
> CNN에서 여러 개의 필터를 이용해 이미지의 세부 특징을 추출해서 학습
> CNN은 신경망에서 학습을 통해 자동으로 적합한 필터를 생성해 주는 특징이 있다. 필터를 사용하는 방법은 합성곱 신경망의 특징 중 하나다. 합성곱 신경망에서 입력된 이미지에 필터를 통과시켜 이미지의 특징을 찾아내게 되는데, 이때 여러개의 필터를 이용하여 이미지의 세부 특징을 추출하는 방법을 컨볼루션이라고 한다.
[컨볼루션convolution]
합성곱 연산을 통해 이미지의 특징을 추출하는 역할을 한다. 커널(Kernel) 또는 필터(filter)를 사용하여 이미지를 처음부터 끝까지 계산한다.
> 입력된 이미지에 필터를 통과시켜 이미지의 특징을 찾아내는 방법
> 컨볼루션 과정을 통하여 이미지의 크기는 줄어들게 되며, 이미지는 고유의 정보값을 가지게 된다. 커널을 사용하여 합성곱연산을 통해 나온 결과를 특성맵(feature map)이라고 한다. 컨볼루션 과정을 처리하게 되면 이미지의 불필요한 노이즈 값이 제거되고 이미지의 고유의 특징을 수치화된 데이터로 확보하게 된다. 이런 컨볼루션 과정을 여러 번 반복하게 되면, 이미지의 특징을 가지는 데이터만 남게 된다. 대부분의 합성곱 신경망은 컨볼루션 과정의 처리 후 풀링과정을 진행하게 된다.
풀링은 특정 맵을 다운 샘플링 하여 특성 맵의 크기를 줄이는 연산을 의미한다. 즉, 데이터의 특성은 보존하고 크기를 줄이는 처리방식으로, 합성곱 신경망에서 중요한 개념이다. 보통의 경우 컨볼루션된 데이터가 풀링과정을 거치게 되면 크기는 절반으로 줄어든다. 풀링은 CNN의 합성곱 층의 처리인 합성곱 연산과 활성화 함수가 처리된 후 풀링을 진행하는 것이 일반적이다.
[풀링] : 특성 맵의 크기를 줄이는 역할
>CNN은 합성곱 층(합성곱 연산 + 활성화 함수) 다음에 풀링층이 온다.
> 풀링층에서는 특정 맵을 다운샘플링하여 특성 맵의 크기를 줄이는 풀링 연산이 이루어진다.
> 풀링 연산은 일반적으로 최대풀링(max pooling)과 평균풀링(average pooling)이 많이 사용된다.
CNN과정 그림 처음 이미지가 데이터로 들어오면, 합성곱신경망은 convolution과 Activation Function을이용하여 이미지의 특징점을 찾아낸다. 이렇게 처리된 데이터는 풀링과정을 통하여 크기가 절반으로 줄어든다. 풀링과정을 통해 크기가 줄어든 데이터를 다시 convolution과 Activation Function을이용하여 이미지의 특징점을 찾는다.
그리고 풀링을 진행하게 된다. 이처럼 컨볼루션과 풀링의 반복을 통하여 이미지는 크기가 줄어들고, 수치화된 데이터로 작은 크기의 데이터로 존재하게 된다. 컨볼루션과 풀링을 거친 최종결과는 Flatten Layer을 통하여 평탄화된다. 즉, 한 줄의 데이터로 변형되며 CNN의 데이터 타입에 맞는 Fully Connected를 통하여 결과를 분석할 수 있는 구조로 만든다. 즉, 기존에 학습된 데이터와의 처리를 위하여 Flatten과정과 Full Connected과정을 거쳐 기존의 데이터와 비교하여 분류할 수 있는 형태의 데이터로 구분된다.
이미 학습된 데이터와 처리된 데이터를 비교하여 가장 유사한 결과값이 어디에 해당하는지를 비교하여 예측하는 방법이 합성곱신경망의 원리다. 합성곱 신경망은 영상처리에 많이 활용되는 합성곱을 이용한 인공신경망으로 합성곱을 이용하여 가중치 수를 줄여 이미지처리에 효과적인 신경망이다. 합성곱신경망은 인공지능 구현 서비스에서 카메라에서 영상을 받거나, 이미지에서 특정 객체를 판별하는 등의 용도로 널리 사용된다.
정리해 보면, 합성곱신경망 CNN은 입력값을 RGB채널로 분리하고, 분리된 데이터를 특성지도를 이용하여 특징점을 찾아낸다. 이 특징점을 찾는 과정을 컨볼루션이라고 한다. 컨볼루션을 통과한 데이터는 다시 크기를 줄이기 위한 풀링 과정을 거쳐 크기는 줄어든다. 이 과정을 반복해서 이미지의 특징 정보만 가지고 있는 형태가 된다. 이 데이터를 이미 학습된 인공지능 분류에서 유사한 것을 찾아 결과를 예측하는 모델로 이해할 수 있다. 결국 핵심은 컨볼루션과 풀링이다.
RNN(Recurrent Neural Network) 순환신경망
> 계층의 출력이 순환하는 인공신경망 > 은닉 계층의 결과가 다음 계층으로 넘어가며, 자기 계층으로 다시 돌아오는 순환구조 > 시계열 정보 처리처럼 앞뒤 신호의 상관도가 있는 경우 > 음성, 웨이브폼 텍스트의 앞뒤를 분석하는 등 언어처리 > CNN이 영상에 특화되어 있다면, RNN은 음성과 텍스트 처리에 특화된 알고리즘이다.
GAN(Generative Adversarial Network) 생성적 적대 신경망
>신경망이 2개가 존재하는 구조의 인공지능
> 이미지생성, 이미지 복원, 동작흉내, 슴성생성, 편집, 변환 등에 많이 사용하는 알고리즘으로 최근 개발된 인공지능 알고리즘이다.
> 신경망끼리 경쟁하여 최적화를 수행하는 생성형 신경망
>GAN 내부의 두 신경망이 상호 경쟁 하면서 학습 > 하나는 생성망, 하나는 판별망
>2014, 구글 브레인에서 머신러닝 연구 중 발표
> 핵심내용은 노이즈로부터 이미지 생성
> 지도 학습 중심의 딥러닝 패러다임을 비지도 학습으로 전환
> 응용분야 : 자연어처리(NLP) 이미지 생성 등 다양
> 생성자와 구분자가 서로 경쟁(adversarial)하며 데이터를 생성(Generative)하는 모델(Network)
> 생성자(Generator) : 인물 사진을 만들어내는 것
>구분자(Discriminator) : 만들어진 인물 사진을 평가
> 생성자와 구분자가 서로 대립하며 서로의 성능을 점차 개선해 나가는 쪽으로 학습하는 방법
[생성적적대신경망]에 대해 이해해 보자. 2014년, 구글 브레인에서 머신러닝 연구 중 발표하였으며, 이안 굿펠로우가 고안한 인공지능 알고리즘이다. 핵심내용은 노이즈로부터 이미지를 생성하는 기술이다. GAN의 실제 활용도는 다양하며, 최근 지도 학습 중심의 딥러닝 패러다임을 비지도 학습으로 전환하는 핵심이 될 것으로 예측하고 있다. 인공지능에서 가장 어려운 부분이 데이터 확보인데, GAN의 특징은 진짜 같은 가짜 데이터를 무한대로 만들 수 있는 특징을 가지고 있어서 최근 응용분야가 늘어가고 있다. 자연어처리(NLP), 이미지 생성등 분야에서 널리 사용 중에 있다. GAN의 특징은 생성자와 구분자 또는 판별자라는 인공지능이 존재. 즉, 하나의 알고리즘에 2개의 인공지능이 존재한다.
생성자는 Generator라고 하고 구분자는 Discriminator 생성자는 인물 사진을 가짜로 만들어 내는 역할이라면, 구분자는 만들어진 가짜 인물을 진짜 사진과 확인하여 평가하는 방법이다. 처음 생성자가 만들어낸 가짜 이미지의 경우, 조잡하여 쉽게 판별할 수 있지만, 시간이 지날수록 생성자가 정밀한 가짜 이미지를 만들어내면, 구분자는 진짜 이미지인지 가짜 이미지인지 판별하기 어려워진다. 이때, 구분자가 판별에 실패하면, 구분자 알고리즘을 학습시키는 방식으로 반복하여 학습을 진행한다.
시간이 지나면, 생성자와 구분자는 50:50의 평균적인 판별능력을 가지게 되고 이렇게 완성된 인공지능이 GAN이다. (창과 방패의 대결이다/선의의 대결) 서로 대립하게 해서 최적화시키는 방식인 듯 GAN은 생성자와 구분자가 서로 경쟁하며 데이터를 생성하는 모델이다. 생성자와 구분자가 서로 대립하며 서로의 성능을 점차 개선해 나가는 쪽으로 학습하는 알고리즘. GAN의 구조를 보면, real world images는 실제 이미지를 의미하며 실제 이미지를 생성자에게 보여주고, 그러면 생성자는 가짜 이미지를 만들게 된다.
만들어진 가짜 이미지는 진짜 이미지와 같이 구분자가 판별하여 진짜인지 가짜인지 판별한다. 이 과정을 통해 고도의 성능 좋은 인공지능을 개발하게 된다. 이 알고리즘의 한계는 생성자와 구분자가 서로 경쟁하지 않으면 실제 데이터로 결과를 내기 어렵다. 즉, 생성자와 구분자 중 하나가 너무 학습을 잘하게 되면 다른 알고리즘이 그 기능을 상실하게 된다. GAN은 우리가 알고 있는 인공지능 알고리즘보다 훨씬 복잡하기 때문에 학습을 원하는 분은 별도 공부 필요
[생성적 적대 신경망의 활용범위]
장점이 많고 활용가능 분야가 많다. 특히 이미지처리에 많이 사용한다.
[GAN의 장점 및 활용]
>데이터 증대 :가짜 데이터를 대량으로 생산하여 데이터의 부족함을 보완
> GAN을 활용한 이미지 복원, 화질이 낮은 이미지를 고해상도로 복원 GAN의 장점은 가짜 데이터를 대량으로 생산하여 데이터의 부족함을 보완할 수 있으며, 화질이 낮은 이미지를 고해상도로 복원하는 등 다양한 분야에 활용 가능하다. GAN의 활용분야 중 가장 중요한 분야는 없는 이미지를 가상으로 만들어내는 분야다.
예를 들어 원하는 형태의 건물을 간단하게만 스케치해도, GAN이 실제 건물 사진처럼 조감도를 만들어 낸다. 이 기능은 조감도를 만들어야 하는 복잡한 작업 과정을 줄여 생산성을 높여준다. 또 흑백사진을 넣으면, 컬러이미지를 복원해 주는 기능이 있다. 그러면 GAN은 머신러닝 학습 중 어디에 해당할까?
지도학습과 비지도학습이 섞여 있는 모델이다.
[합성곱신경망 요약]
> 컴퓨터에서 데이터를 가져올 때, 사진의 정보에 따라 컬러는 3 채널 흑백은 1 채널로 데이터를 변환하여 가져온다. 가져온 데이터를 컨볼루션과 풀링을 통해 데이터의 특징을 찾고, 반복 과정을 통해 이미지의 특징점을 찾아낸다. 풀링과정은 데이터특성의 손실 없이 크기를 절반으로 줄이는 역할을 하며, 컨볼루션과 풀링은 쌍으로 사용하는 것이 보편적이다.
어쨌든 컨볼루션과 풀링을 반복한 후 최종결과물은 Flatten 과정을 통해 데이터를 평탄화한다. 최종적으로 합성곱 신경망의 구조로 변환하기 위해 Fully Connected방식으로 변환하여 우리가 학습시킨 결과치와 비교하여 결과를 예측하게 된다.
[생성적 적대 신경망 요약]
신경망끼리 경쟁하여 최적화를 수행하는 신경망으로 두 개의 신경망이 존재하는 특징이 있다. GAN의 구조를 보면 real world images는 실제 이미지이며 이 이미지를 생성자에게 보여주고 가짜이미지를 만들게 한다. 만들어진 가짜 이미지는 진짜 이미지와 같이 구분자가 판별하여 진짜인지 가짜인지 판별한다. 과정을 통해 고성능 인공지능을 개발하게 된다. GAN의 응용분야는 데이터증대/가짜데이터 대량생산으로 데이터 부족 보완/ 이미지 복원/ 화질이 낮은 이미지를 고해상도로 복원/ 흑백 이미지를 컬러이미지로 생성/ Edge정보에 채색작업인 layout정도의 그림으로 실제 이미지와 같은 결과를 만들어내는 분야 등 다양한 분야에 활용하고 있다.
마지막 파트는 인공지능 윤리에 관한 내용이다. 해당 파트에서는 많은 문제가 출제되지 않는다고 한다. 솔직히 별로 낼 게 없어 보이기도 한다. 그럼에도 자세한 부분은 이론 강의를 통해 확인해 보시길 바라며, 윤리 관련 파트는 따로 정리하지 않았다.
다만, 이 파트에서는 인공지능에게 어떤 윤리를 가르쳐야 할지에 대한 내용과, 인공지능에 법인격을 부여하는 것에 대한 긍정, 부정 입장에 관한 내용, 지적 재산권과 개인정보보호법에 대한 이야기들이 주를 이룬다. AIDE 2급에서 초상권과 지적재산권에 대해 다뤘던 부분들이 역시 겹쳐서 출제될 것으로 보인다.
'데이터라벨러' 카테고리의 다른 글
크라우드웍스 작업자 마스터, 검수자 마스터 과정 수강 후기 (0) | 2024.01.08 |
---|---|
AIDE 1급 인공지능 데이터 전문가 자격증 시험 합격 후기 (1) | 2024.01.06 |
크라우드웍스 데이터라벨링 강의와 내일배움카드 교육 (3) | 2023.12.18 |
플랫폼 종사자와 플랫폼 노동, 그리고 데이터라벨러 (0) | 2023.12.16 |
데이터 라벨링 기초 이론과 작업 과정의 이해 (0) | 2023.12.16 |
댓글