인프런 - 강의/나도 만들어본다 AI 앱 (tensorflow+android) 10

9 - Tensorflow lite 만들기

텐서플로우 라이트란 무엇일까요? 텐서플로우로 만든 머신러닝 모델을 모바일에 할 수 있게 해놓은 프레임워크입니다. 열심히 저희가 만들어놓은 머신러닝 모델을 모바일에서 사용할 수 있도록 변경해서, 사용합니다. 얘를 어떻게 쓰느냐 하면, 아래와 같은 절차로 진행됩니다. converter = tf.lite.TFLiteConverter.from_keras_model(model) tflite_model = converter.convert() open("mnist.tflite", "wb").write(tflite_model) from google.colab import files files.download( "mnist.tflite" )

8 - relu, dropout, softmax

RELU에 대해 설명해보겠습니다. RELU에 대해 설명드리려면 1. 분류(logistic regression) 2. sigmoid 3. vanishing gradient 4. relu 이런 순서대로 설명드려야 합니다. 자, 1. 분류 문제부터 봅시다. 분류를 왜 하는가에 대해서 알아보면, 아빠키 아들키 예측하는 것과 달리, Yes or No로 분류될 수 있는 문제를 처리합니다. 이런 문제가 아니라, Yes or No 로 분류되는 문제를 봅니다. 카카오에 합격하기 위해 기술면접을 봤다고 생각해봅니다. 조금만 공부하면 실패하고 더 공부하면 합격하는 경우를 생각해봅시다. 근데 데이터가 이상한게 하나 들어오면 그래프가 이상해집니다. 때문에, 아래와 같이 sigmoid 함수를 사용합니다. 그런데 얘를 쓰면 문제가..

7 - 간단한 딥러닝 구현

저희는 이제 MNIST를 해보겠습니다. 손글씨 인식하는 내용을 만드는 것인데, 이 것을 딥러닝 방식으로 학습시켜서 인식하는 프로그램을 만들어봅니다. 이 것을 처음에 봤을 때 드는 의문이, 저 이미지들을 사진으로 보여주면, 그냥 컴퓨터가 알아서 학습하나? 그게 가능해? 라고 생각했었습니다. 좀 찾아보니, 컴퓨터가 학습하는 방식은 저 친구들을 이용해서 벡터 행렬로 바꿉니다. array([[0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ], [0. , 0. , 0. , 0. , 0. , 0. , 0. , 0. ,..

6 - 그러면 deep러닝은 뭔가요?

딥러닝에 대해서 알아보겠습니다. 다들 딥러닝 딥러닝 하니깐, 머신러닝의 업그레이드 버전인가? 라는 생각이 들기도 하고 딥(deep)깊게 배운다? 라고 하니 더 좋은 것 같기도 하고 딥러닝을 쓰면 무조건 좋다가 아니라 상황에 맞게 알맞은 모델을 만들어서 잘 학습 시키는 것이 좋습니다. 자, 이제 뭔지 한번 해 보겠습니다. AI를 하는 이유는 너무 단순합니다. 컴퓨터가 잘 알아들어서 우리처럼 뭔가를 이해하기를 바라는 겁니다. 딥러닝이라는 것은 인간이 학습하는 과정과 비슷한데 인간이 학습하는 과정을 보면 요런 신경세포가 자극을 받아서 뭔가 결과를 내주는데 이 과정을 여러번을 거쳐서 학습을 하는 것입니다. 그런데 이 친구들이 잘 학습되지 않는 문제가 발생합니다. 때문에, 뒤로 학습하는 방법을 사용합니다. 참고할..

5 - Linear Regression 구현

저희가 예전에 수학을 배울 때 저 선을 y = ax + b라고 했었는데 저희는 지금 이 선을 Wx + b라고 하겠습니다. import tensorflow as tf print(tf.__version__) # 텐서플로우 버전 확인 # 만약 1.x가 나오면 아래의 코드 실행 # !pip uninstall tensorflow --yes # !pip install tensorflow==2.0.0 import numpy as np rng = np.random # 파라메터 설정 learning_rate = 0.01 training_steps = 1000 display_step = 50 # 학습 X = np.array([1,2,3,4]) Y = np.array([1,2,3,4]) n_samples = X.shape[..

4 - 정말 간단한 Linear regression 이론

머신러닝 강의를 듣나보면 linear regression, classification 이런 단어들이 나옵니다. classification은 분류인 것 같은데 regression은 뭘까? 라고 의문이 듭니다. 저는 이 regression이라는 말을 들었을 때 이게 도대체 무슨소리인가 싶었는데 애를 찾아보면 위키백과에서 - 회귀 회귀 분석은 관찰된 연속형 변수들에 대해 두 변수 사이의 모형을 구한뒤 적합도를 측정해 내는 분석 방법이다. - 선형 회귀 선형 회귀 종속 변수 y가 한개 이상의 독립 변수 x와의 선형 상관 관계를 모델링하는 회귀분석 라고 나옵니다. 쉽게 말하면 그래프입니다. 실생활을 예로 들어보면 - 아들키 -> 아빠키 예를 들면 아들의 키가 큽니다. 그러면 아빠도 클 것 이다 라고 예상할 수 있..

3 - AI란 무엇인가?

AI가 뭔지 한번 보고 가겠습니다. 흔히 쓰이는 예시입니다. 아래의 이미지들이 있을 때 우리는 이 원통이 X+Y의 수식을 가진다고 예상할 수 있습니다. 저 X + Y를 사람이 써 주는 것을 일반적인 프로그램, X + Y를 정해주지 않은 것이 머신러닝이라고 생각하시면 됩니다. 기존에 고양이를 알아보는 프로그램을 개발한다고 생각해볼게요 요런 애가 있다고 생각해봅시다. 그러면 이 이미지를 가져와서, 기존에는 얼굴이 얼마나고 귀는 어떤 위치에 있어야하고 그런 것들을 정해줘야 했습니다. 하지만 머신러닝에서는 그런 것들을 정해주지 않고 다양한 데이터들을 보여줌으로써, 이런 애들이 고양이구나 하면서 알 수 있게 합니다. 그래서 만약 새로운 사진이 들어오면, 얘가 지금까지 봤던 애와 유사하면 NN%확률로 고양이와 비슷..

2 - 개발환경 세팅하기

구글 코랩 사용방법 https://colab.research.google.com/notebooks/welcome.ipynb?hl=ko-kr Google Colaboratory colab.research.google.com 여기 들어가서 사용해봅니다. print("a") print("b") a_list = [] a_list.append("c") a_list.append("d") a_list.append("e") a_list.append("f") from konlpy.tag import Kkma import collections kkma = Kkma() kkma.nouns("아버지가 가방에 들어가신다") kkma.nouns("아버지가가 방에 들어가신다") kkma.nouns("개발자가 진화하면 치킨집 사장님..