인공지능 관련 용어 공부자료

인공지능 관련 용어 공부자료 참고:https://brunch.co.kr/@stormktu9/148 - 상정 논법 (Abduction) = 가추, 귀추, 유사 추론(plausible inference) Rule의 Condition을 추측해내는 것. -> 결과는 False일 수 있음.(추측(=heuristic)이기 때문) A->B에서 B를 알면 A를 추론 가능 - 연역법(deduction) 전제가 참이면 결론이 필연적으로 참이되는 것 - 귀납법(induction) 관찰과 경험을 통해 자료를 수집하고, 수집한 자료에서 비롯된 성향, 관련성을 가지고 결론을 도출하는 방법 - 에이전트(Agent) 복잡한 동적인 환경에서 목표를 달성하려고 시도하는 시스템 "Agent 는 자신의  센서 (Sensor)  를을 통해 환경 (environments) 을  지각 (Percept)  하여 작용기 (effectors) 를 통해 그 환경에 대해 반응 (action) 하는 시스템을 말한다" (Russel 1994) 정리하자면, 현재 인공지능들은 Agent의 컴포넌트이며 모든것(행동인식, 객체인식 등)이 집약된 것이 Agent -액추에이터(Actuator) 하나의 에이전트가 어떤 환경에 대해 작동하는 메커니즘  *제어의 목적을 달성하도록 조작량을 변화시킬 수 있는 구조가 필요* ex) 인간 - 팔, 손, 손가락, 다리 -아달라인(Adaptive Linear Neuron, Adaline) 분류(classification)를 위한 보다 발전된 머신러닝 알고리즘인 회귀(regression), 로지스틱 회귀(logistic regression), SVM(support Vector Machine)에 대한 알고리즘의 토대 마련 - 너무 어렵.. - A/B 테스팅 테스터를 두 집단으로 나누고 집단 A에게 기존 프로덕트를 제공, 집단 B에게 새로운 프로덕트 제공하여 어떤 집단이 더 높은 성과를 보이는지 측정 -> 인과관계 추측 가능 - Alp...

이미지 캡셔닝 Show and Tell 리뷰

이미지
출처:  https://www.cv-foundation.org/openaccess/content_cvpr_2015/html/Vinyals_Show_and_Tell_2015_CVPR_paper.html 이미지 캡셔닝이란 이미지를 문장(이미지를 설명하는)으로 변환시켜주는 기술입니다. 이때 인공지능 용어에서 도메인이라는 단어를 사용하는데 도메인은 이미지, 문장 등 특정 데이터 집합을 일컫습니다. 참고한 논문에선 언어 번역기를 베이스라인으로 잡았습니다. 언어번역기의 구조는 그림 1과 같습니다. 그림 1 언어번역기 구조 언어 번역기 또한 영어 (도메인) 한국어(도메인)으로 변환해줍니다. 이때 모델 구조는 텍스트, 시계열 데이터 처리에 능한 RNN을 사용하였습니다. 즉, RNN(Encoder) - RNN(Decoder) 구조입니다. 이미지 캡셔닝은 입력데이터로 이미지를 입력해야하므로 이미지 처리에 특화된 CNN으로 변경하였습니다. 따라서 초기의 이미지 캡셔닝 구조는 그림 2와 같습니다. 그림 2 이미지 캡셔닝 구조 이미지를 Encoder인 CNN에 입력한 후 Spatial feature를 추출하고, 추출된 feature를 RNN의 vanising gradient problem을 해결한 LSTM(Decoder)에 입력하게 됩니다. 이때 word embedding이 되어 있어야 단어가 생성될 수 있는데 word embedding에 관해 간단하게 설명 드리도록 하겠습니다. 기존 classification 문제같은 경우는 이미지-class 로 one-hot-encoding을 진행합니다. 즉, 아래 그림과 같이 개는 어떤 축에 존재하고 고양이는 다른축에 존재하는 식으로 되기 때문에 class가 많을 수록 depth가 깊어지게 됩니다. 다른말로, sparse vector라고도 합니다. one-hot-encoding의 장점은 간단하게 표기가 가능하다는 점입니다. depth가 깊어지는 것 제외하고도 단점...

대학원생 및 연구자를 위한 딥러닝 기반 멀티미디어 기술 워크숍

딥러닝 및 심층신경망 기초 및 실습 고려대 김중헌 교수님 - 학습 방법, 사용처 등 딥러닝의 개요에 관한 내용 설명 - GAN의 아주 간단한 설명 모델 구성 정도 - 텐서플로우 실습 - node 생성 및 placeholder 등 Linear regression theory -  y = Wx+b 부터의 내용 - Cost function과 Gradient decent 관련 내용 - Cost function은 선형 방정식에 기초함 Binary classification theory - Binary classification은 sigmoid activation function으로 분류기를 설정할 수 있음 - 0.5를 기준으로 함 - Cost function은 선형 방정식에 기초할 수 없으므로 log를 사용한 cost function을 이용하여 cost를 0과 inf로 나눔 - csv파일 읽는 것 tensorflow 예제 Softmax classification theory - multi-category classification 문제일 경우 사용되는 방법 ANN theory - input layer는 사실 layer라고 부르지 않음 실제 데이터를 입력하는 것이기 때문. 따라서 layer의 개수를 셀 때 input은 제외 - hidden layer는 output layer를 제외한 나머지 layer - 딥러닝의 연산과정은 interpolation 과정과 비슷함 CNN 기반 영상 인식 기술 및 PyTorch 실습 아주대 황원준교수님 - 영상 관련 기술들 소개 (e.g. face recog, pose estimation, etc...) Why Deep Learning? - Hand-craft 기법들은 deep learning기법에 비해 성능이 떨어지기 때문 - deep learning 기술은 방대한 데이터를 기반으로 함 Model Architect - ImageNet으로 성능 경쟁 대회가 이...

YOLO custom dataset으로 학습

이미지
YOLO는 많은 사람들이 사용하고 있는 객체 인식 오픈소스입니다. 이미 선행학습 (Pre-trained)된 데이터도 있지만, 제가 원하는 클래스는 송전탑 (Transmission tower) 클래스입니다. 따라서 해당 클래스만 학습해보도록 하겠습니다. 환경: Ubuntu 18.04 LTS 데이터 셋을 구하기 위해 먼저 크롤링을 해줍니다. 구글 크롬 드라이버를 이용할 것입니다. 크롬 드라이버를 본인의 크롬 버전에 맞게 다운로드 받습니다. Link: https://chromedriver.chromium.org/downloads 크롬 버전 확인 방법은 그림 1과 같습니다. 그림 1 크롬 버전 확인 크롤러 프로그램은 google-images-download를 사용했습니다. Link: https://github.com/ultralytics/google-images-download Readme에 적힌대로 진행하면 크롤링을 진행할 수 있습니다. 다음은 레이블링을 해야합니다. 이미지 내에 객체의 좌표를 로깅하는 것입니다. 본 포스팅에선 YOLO mark를 사용했습니다. Link: https://github.com/AlexeyAB/Yolo_mark git clone https://github.com/AlexeyAB/Yolo_mark cd Yolo_mark cmake . make chmod u+x ./linux_mark.sh ./linux_mark.sh 위 커맨드들을 입력해주시면 그림 2와 같은 창이 팝업됩니다. 그림 2 Yolo mark 저는 이미 송전탑 이미지들을 넣어놔서 다음과 같은 이미지가 나오지만, 처음에는 비행기 그림이 나옵니다. 크롤링한 이미지들을 다음 경로에 넣어주면 그림 2와 같아집니다. Path: Yolo_mark/x64/Release/data/img 레이블링 하는 법은 마우스 드래그로 합니다. 다른 상세한 단축키들은 h키를 눌러 확인할 수 있습니다...

You only look once (YOLO V3) 기능

이미지
인공지능 관련 연구를 하며 YOLO를 많이 접하게 됩니다. 이때 사용하는 기능은 객체 인식 후 바운더리 박스의 좌표 값, 정확도 임계값 또는 특정 클래스만 인식 등이 있습니다. 어떤 소스를 고쳐야 하는지 알아봅니다. 참고: L = 줄 번호 환경은 Ubuntu 18.04 LTS, C++ 버전입니다. 먼저 darknet.c L400 에 있는 main 함수를 보겠습니다. 실행시킬때 넘겨받는 옵션들을 처리하게 됩니다. 일반적인 테스트 프로세스는 yolo를 실행할 때 detect 옵션을 줍니다. 따라서 main 함수에서 detector.c L562 test_detector 함수로 들어갑니다. test_detector L 577~585: 파일 경로가 옵션으로 주어졌으면 해당 파일이 input image, 아니라면 입력할 수 있도록 함 L 597: 객체 인식 L 600: 객체 인식 결과 변수 할당 L 604: 박스 그리기 L 605: 메모리 해제 L 606~615: 이미지 저장 이 부분에서 dets라는 변수는 YOLO 네트워크의 결과물이라고 할 수 있습니다. 이러한 dets 변수를 파라미터로 갖고 draw_detections 함수로 들어갑니다. draw_detections는 image.c L239 에 정의되어있습니다. 이 함수에서 앞서 언급한 작업을 진행할 수 있습니다. dets[i].prob : 정확도 names[j] : 클래스 L 294 : label 입력 제거한다면 label이 결과물에 표시되지 않습니다. draw_box_width(): 바운더리 박스 그리는 함수 마찬가지로 제거하면 박스가 그려지지 않습니다. left, top, right, bot: 인식된 객체의 바운더리 박스 좌표 위 변수들을 적당히 조합한다면 그림 1과 같이 원하는 객체만 박스를 그릴 수 있습니다.

Versatile video coding Test Model(VTM) Build

이미지
VTM을 리눅스 상에서 빌드해보겠습니다. 그림 1과 같이 https://jvet.hhi.fraunhofer.de에서 자세한 정보들을 얻을 수 있습니다. 소스를 다운로드 받기 위해 GitLab으로 이동합니다. 리눅스에 git이 설치되어 있다고 가정하겠습니다. 그림 2와 같이 clone 해줍니다. 빌드를 해주기 위해 build 폴더를 생성해줍니다. mkdir build build 폴더로 이동합니다.   cd build/ cmake로 구성되어 있기 때문에 cmake를 진행해 줍니다. cmake .. -DCMAKE_BUILD_TYPE=Release -O2 마지막으로 make 해줍니다. make -j 10 3에서 Build Type은 Release와 Debug 두가지가 있습니다. 4에서 -j 10 옵션은 병렬 처리로 빌드 속도를 향상시키는 옵션입니다. CPU core 개수에 맞게 적당한 INT를 입력하면 됩니다.

Image Super-Resolution Using Deep Convolutional Networks 논문리뷰

이미지
Super resolution의 초기 논문인 Image Super-Resolution Using Deep Convolutional Networks 논문 리뷰를 하겠습니다. Introduction Super Resolution (SR)은 저해상도 이미지를 고해상도 이미지로 복원하는 것입니다. Single image super resolution (SISR)과 Multiple image super resolution (MISR)로 분야가 나뉘어져 있습니다. 본 논문에서 기존의 Sparse Coding (SC), Example-based 기법에서 더 나아가 딥러닝 기법을 적용한 기법을 제안합니다. 성능은 그림 1과 같습니다. 기존 기법에 비해 PSNR이 높은 것을 볼 수 있습니다. 여기서 Peak signal-to-noise ratio(PSNR)이란? 영상의 손실 압축에서 화질 손실 정보를 평가할 때 사용하는 평가지표입니다. 그림 1 SRCNN 성능 본 논문에서 어필하는 Contributions는 다음과 같습니다. 전처리가 거의 없이 데이터와 CNN을 이용하여 end-to-end SR을 함 전통적인 기법과 딥러닝의 상관관계를 분석하여 네트워크 구조 설계 지침 딥러닝 기반의 기술을 통해 높은 성능과 속도를 제공 Related Work Image Super-Resolution SISR 알고리즘은 4가지로 분류 가능합니다. Prediction models Edge based methods Image statistical method Patch based methods 본 논문에선 Patch based methods에 관한 설명을 간단하게 합니다. 저해상도와 고해상도의 쌍으로된 patch 정보(딕셔너리)를 가지고 있음 저해상도에서 고해상도로 복원시 nearest neighbor(NN)으로 보간 전통적인 SR 알고리즘은 grayscale이나 single channel image...