강의자료/머신러닝 54

순환신경망 RNN(Recurrent Neural Network)

오늘은 자연어 처리에서 이전에 많이 사용되었던 순환신경망에 대해 살펴 보겠습니다. RNN이란? RNN(Recurrent Neural Network)는 순환신경망을 뜻한다.(과거의 정보를 다시 사용하여 다음에 나오는 문장의 입력으로 사용하여 신경망의 성능을 개선한다) RNN은 입력과 출력을 시퀀스 단위로 처리하는데 여기서 시퀀스란 문장 또는 단어가 나열 된 것을 의미한다. RNN은 은닉층 노드에서 활성화 함수를 통해 나온 결과값을 출력층 방향으로도 보내면서 다시 은닉층 노드의 다음 계산의 입력으로 보내는 특징을 가지고 있다. RNN에서 은닉층의 활성화 함수를 통해 결과를 내보내는 역할을 하는 노드를 셀(cell) 이라고 하며 이 셀은 이전의 값을 기억하려고 하는 일종의 메모리 역하을 수행하므로 메모리셀 또..

[머신러닝활용]훈련된 머신러닝 모델을 안드로이드 프로그램에서 사용해 보기

이 자료는 한빛미디어 [개발자를 위한 머신러닝&딥러닝] 에서 정리한 자료입니다. 대부분의 책들이 머신러닝을 이용해서 모델을 만드는 방법에 대한 내용을 담고 있는데 이렇게 만든 모델을 활용하는 방법에 대한 책들은 많지 않은것 같네요. 일단 이 책에서 y=2x-1 을 예측하는 모델을 생성하고 이러한 모델을 안드로이드 앱에서 어떻게 사용하는지 방법을 자세히 다루고 있어서 정리 차원에서 올렸습니다. 1. 1단계 : 새로운 안드로이드 프로젝트 만들기 1. New Project -> Empty Activity 선택 후 Name : FirstTFLite, Language : Kotlin -> Finish 2. 2단계 : 레이아웃 파일 수정하기 1. res->layout-> activity_main.xml 파일을 더블..

딥러닝을 위한 도구

1. 넘파이 넘파이(Numpy)는 파이썬의 핵심 과학 패키지중 하나이다. 많은 머신러닝과 딥러밍 패키지가 넘파이를깁ㄴ으로 구현되었고 넘파이 인터페이스를 계승하고 있기 때문에 넘파이는 꼭 익혀야 하는 패키지 중 하나이다. 1.1 넘파이 준비하기 코랩에서 넘파이 임포트 하고 버젼 확인하기 import numpy as np print(np.__version__) 임포트 할 때 as키워드를 사용하는데 이는 별명을 만드는 것으로 볼 수 있다. 일반적으로 numpy의 별칭을 np로 사용한다. 1.2 넘파이로 배열 만들기 1. array() 함수로 2차원 배열 만들기 my_arr = np.array([[1,2,3],[4,5,6]]) print(my_arr) 2. type() 함수로 배열 타입 확인 my_numpy =..

캐글 학습 코스 정리

캐글이 준비한 마이크로 코스에는 데이터 과학 프로젝트를 수행하는데 필요한 기술을 익히는 가장 빠른 방법이라는 목표로 다양한 주제의 과정이 모여 있습니다. 학습에 유용한 코스를 간략히 정리해 보면 다음과 같습니다. ML 입문 코드 : https://www.kaggle.com/learn/intro-to-machine-learning Learn Intro to Machine Learning Tutorials Learn the core ideas in machine learning, and build your first models. www.kaggle.com 다양한 모델 클래스를 소개하고 과적합,모델 검증과 같이 다양한 모델이 공통으로 갖는 주제를 알아 봅니다. 중급ML : https://www.kaggle...

처음 만나는 자연어 처리

요즘 핫하게 뜨고 있는 Chat GPT의 원리를 알아 보기 위해 자연어 처리 부분을 살펴 보겠습니다. 1. 기계의 자연어 처리 컴퓨터는 계산기로 사람 말을 알아 듣는 인공지능이라고 해도 결국은 계산의 처리 결과이다. 그렇다면 기계가 사람 말을 알아 듣는 것 처럼 보이게 하려면 어떤 요소가 필요할까? 입력 -> 처리(모델) -> 출력 어떤 데이터를 입력 받아서 처리 해서 출력하는 기본 요소이다. 이때 인공지능에서는 이러한 처리를 하는 절차를 훈련된 모델을 이용해서 처리하게 된다. 2. 트랜스퍼 러닝(전이학습) 트랜스퍼러닝(transfer learning)란 특정 태스크를 학습한 모델을 다른 태스크 수행에 재사용하는 기법을 가르킨다. 즉 전이학습이라고도 한다. BERT나 GPT등도 트랜스퍼러닝이 적용되어 있..

[머신러닝활용] 컴퓨터 비전을 위한 전이학습

1. 전이학습이란? 전이학습이란 ImageNet 과 같은 대량의 데이터셋으로 이미 학습이 되어 있는 모델(사전에 학습된 모델)을 이용하여 소량의 데이터셋을 훈련시켜서 정확도를 향상시키는 학습 방법을 의미한다. 2. 컴퓨터 비전을 위한 전이학습 MobileNet을 이용한 전이 학습 방법을 살펴 본다. 먼저 MobileNet 의 아키텍처는 다음과 같다. 표를 확인하면 대부분의 bottleneck 라는 종류의 레이어임을 알 수 있다. 224 * 224 * 3 크기의 컬러이미지를 받아서 1280개까지 쪼개 내려가는데 마지막에 출력된 값을 특징벡터(feature vector)이라고 부른다. 이 벡터로 1000개 클래스를 분류해 레이어로 전달하는 MobileNet 모델을 설계 할 수 있다. 모델을 설계하고 학습시키..

[머신러닝활용] 컴퓨터 비전

1. 컴퓨터 비전이란? 컴퓨터가 이미지 픽셀을 해석하는 구조화된 알고리즘을 컴퓨터 비전이라 한다. 2. 비전을 위한 뉴런 사용하기 가장 기본적인 형태의 y=2x-1 과 같은 형태를 학습하는 딥러닝이라면 다음과 같은 구조를 가지고 있다. 한개의 층과 한개의 뉴런으로 구성된 간단한 신경망을 사용해서 훈련을 통해 m,c 를 2와 1 값을 찾아낼 수 있다. 가장 기본적인 위와 같은 형태의 신경망은 Sequential 을 사용한다. Sequential은 기본적으로 Dense를 가지고 있다. 위와 같은 모델은 다음과 같이 만들 수 있다. model = Sequential([Dense(units=1,input_shape=[1])]) Dense는 뉴런이 완전히 연결되어 있다는 것을 의미한다. units=1 은 1개의 ..

[머신러닝활용] CCTV속 범인얼굴 특정하기

참고 소스 : https://github.com/kairess/simple_face_recognition GitHub - kairess/simple_face_recognition Contribute to kairess/simple_face_recognition development by creating an account on GitHub. github.com 모델 다운로드 shape_predictor_68_face_landmarks.dat - http://dlib.net/files/shape_predictor_68_face_landmarks.dat.bz2 dlib_face_recognition_resnet_model_v1.dat - github.com/kairess/simple_face_recognit..

[머신러닝활용]dlib 모듈을 이용한 얼굴 인식 및 활용하기

dli 라이브러리는 C++로 작성된 툴킷으로 HOG(histogram of Oriented Gradients) 특성을 사용하여 얼굴 검출하는 기능에 많이 사용되고 있다. dlib.get_frontal_face_detector( ) 를 사용하여 기본 얼굴 검출기로 사용할 수 있다. 1. 라이브러리 임포트 import cv2,dlib,sys import numpy as np cv2,dlib,numpy 모듈을 활용한다. 2. 웹캠에서 이미지 파일 읽기 cap = cv2.VideoCapture(0) #0 웹캠, 동영상 파일을 적용 할 수도 있다. while True: ret,img = cap.read() #프레임 단위로 읽는다. if not ret: break #프레임이 없다면 종료하자. VideoCapture..

[머신러닝활용]성별과 나이를 맞추는 인공지능

tal Hassner 님이 만든 나이와 성별을 맞추는 모델을 사용하는 방법을 살펴 보겠습니다. 공식 홈페이지는 https://talhassner.github.io/home/ 입니다. 원본 소스는 https://github.com/GilLevi/AgeGenderDeepLearning/blob/master/AgeGenderDemo.ipynb 입니다. 참고한 소스는 [빵형의 개발도상국]님의 깃허브 https://github.com/kairess/age_gender_estimation/blob/master/main.py 입니다. 1. 실습환경 코랩 - https://colab.research.google.com/?hl=ko Google Colaboratory colab.research.google.com 모델 ..