반응형

Object Detection (객체 탐지)

객체 탐지는 컴퓨터 비전, 이미지 처리와 관련된 컴퓨터 기술로 디지털 이미지와 비디오로 특정한 계열의 시맨틱 객체 인스턴스를 감지하는 일을 다룬다.

Window 활용 객체 탐지
정해진 위치 및 크기의 객체 탐지

 

YOLO란

CNN 기반 대표적인 단일 단계 방식의 객체 탐지 알고리즘(고정된 사이즈의 그리드 영역으로 크기가 미리 결정된 객체 식별)이다.

YOLO의 특징은 다음과 같다.

- 실시간 객체 탐지

- 객체들의 위치를 한번만 보고 예측

- 미리 지정된 경계박스(Bounding Box)의 개수를 예측하고 신뢰도를 계산

- 높은 신뢰도를 가지는 객체의 위치를 찾아 카테고리를 파악

 

YOLO 작동 방법

객체 탐지 역할의 그리드 박스(Grid Box)와, 객체 정보를 담고 있는 경계 박스(Bounding Box)를 이용하여 객체를 식별한다.

- 그리드 박스(Grid Box): 이미지를 구역으로 나눈 것으로 각 그리드의 중앙으로 부터 객체를 탐지하는 역할

- 경계 박스(Bounding Box): 물체의 위치에 대한 좌표와 가로·세로 크기, 신뢰도의 수치를 포함

위와 같이 입력 이미지(Training Data)를 그리드로 나누고, 각 그리드와 미리 정의된 경계 박스(Bounding Box)에 대해 다음 정보들을 가지고 모델을 학습한다.

- 그리드 박스의 중심

- 상자의 높이와 너비

- 객체를 포함하고 있을 확률

- 객체의 클래스(분류 라벨)

 

Reference

https://eair.tistory.com/41

 

YOLO로 이해하는 이미지 객체 감지(2) - YOLO의 역사

지난 글에서 우리들은 컴퓨터 비전(Computer Vision)에서의 객체 감지(Objection Detection)의 발전 과정과 이를 이해하기 위한 기계학습 및 인공신경망의 개념에 대해 살펴 보았습니다. 본 글에서는 전체

eair.tistory.com

https://wooono.tistory.com/238

 

[DL] Object Detection (Sliding Windows, YOLO)

Object Detection에는 여러가지 Algorithm이 존재합니다. Sliding Windows Detection YOLO Detection 하나하나 다뤄보겠습니다. Sliding Windows Detection 자동차 감지 알고리즘을 만들고 싶다고 가정해봅시다. 그렇다면,

wooono.tistory.com

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

BERT  (0) 2023.04.04
GAN  (0) 2023.04.03
Whisper  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Transformer  (0) 2023.04.03
반응형

BERT

BERT는 2018년 구글이 공개한 사전 학습된 모델이다. 

BERT는 트랜스포머를 이용하여 구현되었으며, 위키피디아(25억 단어)와 BooksCorpus(8억 단어) 같은 레이블이 없는 텍스트 데이터로 사전 훈련된 언어 모델이다.

BERT가 높은 성능을 얻을 수 있는 것은 레이블이 없는 방대한 데이터로 사전 훈련된 모델로 레이블이 있는 다른 작업(Task)에서 추가 훈련과 함께 하이퍼파라미터를 재조정하여 성능이 높게 나오는 기존의 사례들을 참고하였기 때문이다.

다른 작업에 대해서 파라미터 재조정을 위한 추가 훈련 과정을 파인 튜닝(Fine-tuning)이라고 한다.

 

BERT 학습 과정

1. 단어들을 임베딩한다. (input layer)

- Token Embedding : 각 문자 단위로 임베딩

- Segment Embedding : 토큰화 한 단어들을 다시 하나의 문장으로 만드는 작업

- Position Embedding : 토큰의 상대적인 위치를 고려한 인코딩

 

Token Embedding에서 단어보다 더 작은 단위로 쪼개는 서브워드 토크나이저 WordPiece를 사용한다.

 

2. 단어들을 임베딩하여 인코딩 후, MLM과 NSP 방식을 사용하여 모델을 학습한다. (Pre-Training)

- MLM(Masked Language Model): 입력 문장에서 임의로 토큰을 버리고 그 토큰을 맞추는 방식으로 학습 진행

- NSP(Next Sentence Prediction): 두 문장을 주고 순서를 예측하는 방식으로 문장 간 관련성을 고려하며 학습 진행

 

3. 사전 학습 모델을 특정 태스크의 레이블이 있는 데이터로 추가 훈련한다. (Transfer Learning)

 

BERT 활용법

1. 문서 분류 (문장 벡터 활용)

- 문장을 워드피스(wordpiece)로 토큰화한 뒤 앞뒤에 문장 시작과 끝을 알리는 스페셜 토큰 CLS와 SEP를 각각 추가한 뒤 BERT에 입력한다. 

- BERT 모델 마지막 블록(레이어)의 벡터 중 CLS에 해당하는 벡터를 추출한다.(CLS벡터 : 문장 전체 의미가 벡터 하나로 응집)

- CLS 벡터에 작은 모듈을 하나 추가해, 그 출력이 미리 정해 놓은 범주(긍정, 중립, 부정)가 될 확률을 구한다.

 

2. 개체명 인식 (단어 벡터 활용)

- 마지막 블록의 모든 단어 벡터를 활용한다.

- BERT 모델 마지막 블록(레이어)의 출력은 문장 내 모든 단어에 해당하는 벡터들의 시퀀스이다.

- 이렇게 뽑은 단어 벡터들 위에 작은 모듈을 각각 추가해, 그 출력이 각 개체명 범주(기관명, 지명 등)가 될 확률을 구한다.

 

BERT 한계점

일반 NLP 모델에서는 잘 작동하지만, 특정 분야(과학, 금융 등)의 언어 모델에서는 성능이 좋지 않다고 알려져 있다.

 

이는 사용 단어들이 다르고 언어의 특성이 다르기 때문인데, 특정 분야의 BERT 성능 개선을 위해서는 그 분야의 언어 데이터를 수집하고 추가로 학습해줘야 한다.

 

BERT와 GPT의 차이점

 

Reference

https://wikidocs.net/115055

 

17-02 버트(Bidirectional Encoder Representations from Transformers, BERT)

* 트랜스포머 챕터에 대한 사전 이해가 필요합니다. ![](https://wikidocs.net/images/page/35594/BERT.PNG) BERT(Bidire…

wikidocs.net

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

YOLO  (0) 2023.04.04
GAN  (0) 2023.04.03
Whisper  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Transformer  (0) 2023.04.03
반응형

GAN

GAN은 Generative Adversarial Nets이라는 논문을 통해 나온 모델로 진짜와 동일해 보이는 이미지를 생성하는 모델이다.

GAN은 크게 3가지 Unconditional GAN, Conditional GAN, Super Resolution으로 분류된다.

초기 GAN의 아키텍처는 다음과 같이 Generator(생성자)와 Discriminator(판별자)로 구성되었다.

GAN은 Generator와 Discriminator로 이루어져 있어 동시에 두 개의 모델을 훈련하는 것이 특징이다. 여기서 z라고 하는 것은 랜덤 벡터 z를 의미하는 것으로 오른쪽 그림의 uniform distribution이나 normal distribution을 따른다고 한다.

 

이 랜덤 벡터 z를 Generator의 입력으로 넣어 Fake를 생성한 후  Fake와 실제 Real 이미지를 Discriminator의 입력으로 넣어 Fake 또는 Real을 출력 받는다.

 

GAN은 최종 출력인 Fake와 Real의 확률이 1/2에 수렴하여 진짜와 가짜를 구분할 수 없도록 학습하게 된다.

 

DCGAN

DCGAN의 아키텍처는 Generator(생성자)에 Transposed Convolutional Network를 사용하여 Up-Sampling하는데 사용하였다.

Trasnposed Convolutional Network의 경우 기존의 컨볼루션 네트워크처럼 줄어드는 것이 아닌 확대되는 것이라 할 수 있으며 최적의 성능을 내기위해 다음과 같이 5가지 트릭을 적용하였다.  

1.미분이 불가능한 Pooling Layer를 제거하고 미분 가능한 Convolution 레이어로 대체하였다.

2. BatchNormalization 레이어를 추가하였다.

3. fully-connected hidden layer를 삭제하였다.

4. 생성자 모델에 ReLU 함수를 적용하고 출력의 activation function은 Tanh로 설정하였다.

5. 마지막으로 판별자 모든 레이어에 LeakyReLU를 적용하여 유연성을 더하였다.

 

이와 같이 DCGAN을 통해 벡터 산술 연산이 가능하게 되었다.

DCGAN의 주요 contribution은 다음과 같다.

1.대부분의 상황에서 언제나 안정적으로 학습하는 Convolution GAN 구조를 제안하였다.

2.word2vec과 같은 벡터 산술 연산이 가능하여 Generator를 semantic 수준에서 데이터를 생성할 수 있다.

3.판별자가 학습한 필터들을 시각화하여 특정 필터들이 특정 물체를 학습했다는 것을 보였다.

4.학습된 판별자 모델이 다른 비지도 학습 알고리즘과 비교해서 뒤쳐지지 않는 분류 성능을 보였다.

5.GAN 연구의 시작점이 될 수 있게 만들어준 연구라고 볼 수 있다.

 

PGGAN & StyleGAN

PGGAN은 NVIDIA에서 진행한 연구로 핵심 아이디어는 4x4의 저해상도 이미지를 1024x1024 고해상도 이미지로 단계별(Progressive Growing)로 학습한다는 것이다.

기존에는 처음부터 고해상도 이미지를 학습하려다 보니 학습이 올바르게 되지 않았는데, 저해상도에서 보이는 Abstract을 우선적으로 학습 한 뒤 고해상도에서 보이는 Concrete(눈, 코, 입, 모공 등)를 학습하면서 품질이 향상되었다.

 

StyleGAN은 여기에 Style-based generator를 사용하는 구조이다. 이러한 PGGAN의 장점은 크게 3가지로 나뉜다.

1. 작은 이미지부터 점진적으로 학습하기 때문에 안정성 있다.

2. 처음부터 복잡한 질문을 하지 않기에 간단하다.

3. 저해상도에서 학습할 때 충분한 학습을 하게 되며 학습 시간이 짧다.

 

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

YOLO  (0) 2023.04.04
BERT  (0) 2023.04.04
Whisper  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Transformer  (0) 2023.04.03
반응형

Whisper(Web-scale Supervised Pre-training for Speech Recognition)

2022년 9월 OpenAI에서 공개한 트랜스포머 기반의 음성 인식 모델로, 68만 시간 이상의 음성 데이터를 학습하여 인간의 인식과 비슷한 수준의 성능을 확보하였다.

 

음성을 인식하여 텍스트로 변환하거나 번역을 수행할 수 있으며 현재 large-v2 버전이 업데이트되어 API로 이용할 수 있다.


Encoder의 입력 데이터가 음성 파일인 것을 제외하면 일반적인 트랜스포머 구조를 가지고 있다.

Special token을 활용하여 다양한 Task가 가능하도록 설계되었다.

한국어 데이터가 학습 데이터에 높은 비율로 포함되어 있어, 한국어 서비스에의 활용이 기대가 된다.

 

Whisper API 사용법

https://jobdahan-tech.tistory.com/entry/ChatGPT

 

ChatGPT

ChatGPT란 GPT(Generative Pre-trained Transformer)-3는 OpenAI에서 공개한 트랜스포머 구조 기반의 사전 학습된 언어 생성 모델로, 인간과 유사한 텍스트를 생성할 수 있다. https://jobdahan-tech.tistory.com/entry/Transfo

jobdahan-tech.tistory.com

위의 ChatGPT API 사용법을 이용하여 OpenAI 라이브러리까지 설치한다.

 

Transcription(텍스트 변환), Translation(번역) 두 개 기능을 지원하며 Transcription은 다중 언어를 지원하고 Translation은 영어로만 가능하다.

Github과 Huggingface를 통해서도 사용 가능하다.

 

Reference

https://platform.openai.com/overview

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

BERT  (0) 2023.04.04
GAN  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Transformer  (0) 2023.04.03
Naver Clova  (0) 2023.04.03
반응형

ChatGPT란

GPT(Generative Pre-trained Transformer)-3는 OpenAI에서 공개한 트랜스포머 구조 기반의 사전 학습된 언어 생성 모델로, 인간과 유사한 텍스트를 생성할 수 있다.

https://jobdahan-tech.tistory.com/entry/Transformer

 

Transformer

Transformer Transformer는 RNN 언어 모델에서부터 시작었다. 기존의 RNN은 하나의 고정된 크기의 벡터(Context vector)에 모든 정보를 압축하므로 정보 손실이 발생하며 순차적 입력 구조 때문에 먼저 입력

jobdahan-tech.tistory.com

GPT-3는 약 1750억 개의 파라미터를 가지고, 메타 학습(Meta learning)인간의 피드백을 통한 강화 학습(Reinforcement learning)을 수행하여 더욱 인간과 유사하며 정확한 답변을 생성한다.

 

ChatGPT는 GPT-3를 챗봇 기능에 특화시키고, 모델의 윤리성을 보완한 모델이며 GPT-3.5라고도 한다.

 

Meta Learning

메타 학습은 GPT가 추가적인 학습을 할 필요 없는 이유학습 데이터에 없었던 데이터에 대해서도 자체적인 유사도 계산을 통해 분류가 가능하도록 학습한다.(Learning to learn)

zero/one/few-shot learning은 적은 수의 샘플 만으로 답변을 예측할 수 있도록 학습하므로 미세 조정(fine-tuning) 없이 간단한 instruction/example만으로도 문맥에 맞는 답변을 유추할 수 있다.

 

RLHF(Reinforcement learning from human feedback)

GPT가 사람과 유사한 답변을 할 수 있는 이유로 GPT-3는 사람이 직접 답변 생성 결과에 score를 매기고, 이를 별도의 보상 모델(Reward model)을 이용해 높은 score를 가지는 방향으로 학습한다.

 

ChatGPT API 사용법

1. https://platform.openai.com/overview 접속 & 로그인

2. 프로필 클릭 후 Manage account 클릭

2. User -> API Keys 메뉴에서 API Key 발급 (API Key는 생성시에만 확인 가능하므로 백업 필수)

3. Billing -> Payment methods -> Add Payment method 메뉴에서 결제 카드 정보 등록(등록 완료시 자동으로 허용 한도 내 API 사용 가능)

4. Billing -> Usage limits 메뉴에서 월 사용량 한도 설정

5. ChatGPT API 설치

- pip install openai를 실행하여 OpenAI 라이브러리 설치

- API Key 설정

6. ChatGPT 생성 모듈 구성 요소 설정

- system: 챗봇이 어떤 방향으로 답변을 할 지 결정

- user: 사용자의 입력 텍스트

- assistant: 챗봇의 이전 답변, 이전 답변을 바탕으로 대화를 이어나갈 수 있음

7. 챗봇 구현

- 챗봇의 답변을 다시 챗봇 모듈에 넣어 대화가 지속될 수 있게 함

 

Reference

https://platform.openai.com/overview

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

GAN  (0) 2023.04.03
Whisper  (0) 2023.04.03
Transformer  (0) 2023.04.03
Naver Clova  (0) 2023.04.03
간단한 AI 웹서비스 예제  (0) 2023.04.03
반응형

Transformer

Transformer는 RNN 언어 모델에서부터 시작었다.

기존의 RNN은 하나의 고정된 크기의 벡터(Context vector)에 모든 정보를 압축하므로 정보 손실이 발생하며 순차적 입력 구조 때문에 먼저 입력된 단어의 정보가 잘 반영되지 않는(Vanishing gradient) 단점이 존재한다.

Attention

이를 보정해주기 위한 어텐션(Attention) 기법이 등장했지만, 순차적 입력 구조는 그대로이므로 성능 개선에 한계가 있다.

어텐션은 입력 문장 내의 단어들끼리 유사도를 구함으로써 특정 단어와 연관된 확률이 높은 단어를 찾으므로 RNN의 정보 손실 문제를 해결할 수 있다.

트랜스포머는 각 단어의 임베딩 벡터에 위치 정보들을 더하여 모델의 입력으로 사용(Positional encoding)하므로 RNN처럼 단어를 순차적으로 입력하지 않아도 되어, Self-attention이 가능하다.

 Self-attention 알고리즘이 사용된 모델을 일반적으로 Transformer라 한다.

GPT는 인코더-디코더 구조의 트랜스포머에서 디코더만 사용한다. 디코더는 대상 단어 앞의 단어만 Attention에 참고하여 뒷 단어를 예측하므로 텍스트 생성 Task에 더 강하다.

 

Reference

https://www.youtube.com/watch?v=mxGCEWOxfe8 

https://jalammar.github.io/illustrated-transformer/

 

The Illustrated Transformer

Discussions: Hacker News (65 points, 4 comments), Reddit r/MachineLearning (29 points, 3 comments) Translations: Arabic, Chinese (Simplified) 1, Chinese (Simplified) 2, French 1, French 2, Japanese, Korean, Persian, Russian, Spanish 1, Spanish 2, Vietnames

jalammar.github.io

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

Whisper  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Naver Clova  (0) 2023.04.03
간단한 AI 웹서비스 예제  (0) 2023.04.03
AI 모델 조사 시작  (0) 2023.04.03
반응형

Naver Clova

네이버 클로바(Naver Clova)는 네이버에서 개발한 인공지능 플랫폼이며 검색 기능, 날씨 정보, 음악 추천 및 재생, 번역, 영어 프리토킹 등 다양한 기능들을 제공한다.

이러한 다양한 AI 서비스 중 무료로 체험해볼 수 있는 Clova sentiment, Summary 서비스를 이용해보도록 한다.

 

Clova Sentiment

한국어에 최적화된 감정 분석 기술 서비스로 블로그, 댓글, SNS 등 한글로 작성된 글 속에 표현된 감정을 분석해 주는 API이다.

Clova Sentiment 예시

Clova Sentiment 요금

 

Clova Summary

문서 주제와 관계 없이 사용할 수 있는 API로 문서에서 가려낸 주요 내용을 기반으로 전체 내용을 간결하게 요약한다.

Clova Summary 예시

Clova Summary 요금

 

Clova API 사용법

1. 네이버 클라우드 플랫폼 접속(www.ncloud.com) & 로그인

2. 결제 수단 등록 (마이페이지 -> 결제수단 관리 -> 결제수단 등록)

3. 콘솔 접속

4. Service 중 AI API 서비스 선택 (Service -> AI NAVER API)

5. Application 등록 (이름 설정 -> 사용할 api 서비스 선택)

6. 인증 정보(key) 확인 - Client ID / Password

7. API 가이드 참고하여 사용법 확인 (요청 Http, 헤더, 바디, 응답 바디, 예제 등 확인)

8. API 이용하여 서비스 사용 (key값&API http 입력 -> input data 입력 -> output 출력)

9. 한도 설정으로 유료 전환 방지

 

Reference

www.ncloud.com  

 

NAVER CLOUD PLATFORM

cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification

www.ncloud.com

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

Whisper  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Transformer  (0) 2023.04.03
간단한 AI 웹서비스 예제  (0) 2023.04.03
AI 모델 조사 시작  (0) 2023.04.03
반응형

주접 생성기

이름을 입력하면 주접 멘트를 생성해주는 서비스

https://ju-jeob.com/

스팸체 생성기

글귀를 입력하면 스팸체를 생성해주는 서비스

https://mingpd.github.io/2019/04/18/workroom/spammaker/

 

위와 같은 간단한 AI 웹서비스를 구축해보는 것이 스터디의 목표이다.

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

Whisper  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Transformer  (0) 2023.04.03
Naver Clova  (0) 2023.04.03
AI 모델 조사 시작  (0) 2023.04.03
반응형

기획에 앞서 AI 서비스 구축에 사용할 AI 모델에 대한 조사를 먼저 시작한다.

 

AI 모델을 만드는 것이 목표가 아니기 때문에 AI 서비스 구축에 AI 모델을 직접 코드를 구성하고 학습을 시키기 보다는 모델이 어떻게 돌아가는지 이해하고 잘 작성된 코드를 가져와 활용하거나 API를 활용하여 서비스를 구축하는 것을 목표로 한다.

 

따라서, 모델을 조사하는 과정에서 모델의 알고리즘에 대한 이해 보다는 작동 원리, 사용법 등에 더 초점을 두고 조사를 하도록 한다.

 

 

반응형

'AI 서비스 구축 스터디 > 모델 조사' 카테고리의 다른 글

Whisper  (0) 2023.04.03
ChatGPT  (0) 2023.04.03
Transformer  (0) 2023.04.03
Naver Clova  (0) 2023.04.03
간단한 AI 웹서비스 예제  (0) 2023.04.03

+ Recent posts