메모내용
Nav

Tensorflow.js

Tensorflow

인간의 판단 능력을 기계에게 위임하는 기술을 머신러닝, 한국어로는 기계학습 이라고 합니다. 머신러닝이라는 하나의 어휘 안에는 실로 많은 기술이 포함되어 있는데, 유명한 것들을 살펴보면 아래와 같습니다.

이 지도는 머신러닝이 할 수 있는 여러가지 일들을 보여주는데요. 이중에서 우리가 Tensorflow 를 이용해서 해결하려 하는 문제는 기계학습 :: 지도학습 :: 회귀 문제입니다

지도학습 으로 컴퓨터를 학습 시킵니다. 컴퓨터에 대한 학습이 끝나면, 학습한 적이 없는 정보를 만났을 때 그 정보가 무엇인지 알려주게 됩니다. 이러한 것들을 바로 학습을 통해 판단력을 갖게 한다고 해서 지도학습 이라고 합니다. 지도학습에는 두가지 방식이 있습니다. 맞추려고 하는 정보가 숫자 일때 회귀(Regression) 를 사용합니다. 맞추려고 하는 정보가 범주형 일때 분류(Classification) 를 사용합니다.

분류와 회귀 문제를 풀기 위해서 사용하는 방법 은 아주 다양합니다. 이러한 방법을 머신러닝 알고리즘 이라고 하는데요. 이러한 문제를 해결하는 여러가지 알고리즘들 이 있습니다.

이들 모두가 머신러닝의 회귀, 분류 문제를 해결하는 데 사용하는 알고리즘 입니다.

이중 Tensorflow 가 속하는 알고리즘은 NeuralNetwork 입니다.

NeuralNetwork

인공 신경망

NeuralNetwork 는 사람의 두뇌가 동작하는 방법을 모방해서 기계가 사람처럼 학습을 할 수 있도록 고안된 알고리즘 입니다.

우리의 뇌에는 뉴런 이라고 하는 세포들이 촘촘하게 연결되어 있는데요. 이러한 뉴런들로 연결되어 있는 신경의 망을 인공적으로 만들었다 는 의미에서 인공신경망 이라는 이름을 갖게 되었습니다. 지금은 DeepLearning(딥러닝) 이라는 이름으로 더 유명합니다. 인공신경망을 깊게 쌓아서 만들었다 는 표현으로 DeepLearning(딥러닝) 이라는 단어를 사용하기 시작했고 오늘날 아주 널리 사용하고 있습니다. 즉 NeuralNetwork, 인공신경망, DeepLearning 은 모두 인간의 신경을 모방한 이론을 가리키는 같거나 비슷한 말입니다.

DeepLearning 이 매우 많은 문제를 매우 잘 해결할 수 있다 는 사실이 발견되면서부터 딥러닝이 머신러닝 처럼 사용되기 시작했지만, 이러한 표현은 엄현히 다른 표현들입니다.

그런데 이 DeepLearning 이라는 이론을 공부해서 컴퓨터를 동작시켜 여러가지 문제를 해결하는 것이 과연 쉬운 일일까요. 아니에요, 불과 몇년전만 해도 천재라도 대기업이라도 할 수 없는 일이었습니다. 다행 스럽게도 오늘날은 구체적인 DeepLearning 의 원리를 몰라도 코드만 작성하면 DeepLearning 으로 문제를 해결할 수 있는 여러 도구들이 있습니다. 코딩의 세계에서는 이러한 도구들을 라이브러리라고 부릅니다. DeepLearning 이론을 코딩으로 이용할 수 있도록 해주는 여러 라이브러리들이 있습니다.

이 기술들은 모두 같은 목적으로 고안된 라이브러리들을 입니다. 즉 서로 간의 경쟁관계 라고 할 수 있습니다/ 이 중에서 우리는 Tensorflow 라이브러리를 사용해서 DeepLearning 으로 여러 가지 문제를 해결해 볼 것입니다.

Tensorflow

댄서 플로 라이브러리는 두가지 종류가 있습니다. 그냥 Tensorflow 라고 하면 파이썬으로 어 사용하는 라이브러리 입니다. 우리 수업에서는 자바스크립트에서 동작하는 라이브러리를 다룹니다. Tensorflow js 입니다. Tensorflow js 는 매우 흥미로운 라이브러리 에요. 이 라이브러리는 자바스크립트가 동작하는 환경에서 공통으로 작동 해요. 가장 대표적인 자바스크립트 실행 환경으로 는 Web Browser 와 Node js 가 있죠. 웹브라우저가 설치되어 있지 않은 컴퓨터는 흔치 않습니다. 또 오늘날 많은 운영체제 노드 js 가 설치되어 있기도 합니다

그 말은 거의 대부분의 환경에서 특별한 소프트웨어를 설치하지 않고도 Tensorflow js 가 동작한다는 뜻입니다. 특히나 사용자의 컴퓨팅 파워를 이용할 수가 있기 때문에 비용을 절약할 수도 있겠죠. 여러분이 직접 코딩을 한다면 수만 줄의 코드가 필요할 수 있는 일을 Tensorflow js 를 이용해서 몇 줄의 코드로 처리할 수 있게 될 것입니다.

정리해 봅시다 Tensorflow 의 경쟁자는 누가 있다고요? ConvNetJS, BrainJS, PyTorch 와 같은 것들이 있습니다. 이러한 것들은 라이브러리 에요. 이들은 어떤 알고리즘을 코드로 이용할 수 있게 합니다. NeuralNetwork 다른 말로 DeepLearning 입니다. DeepLearning 경쟁자는 누가 있다고요? DeciesionTree, RandomForest, KNN, SVM 등등이 있습니다. 이것들은 알고리즘 이에요 이론이라고 할 수 있습니다. 이런 알고리즘으로 해결할 수 있는 대표적인 문제 면서 우리 수업에서 다루는 문제는 무엇이 라구요? 회귀 입니다 이런 문제는 지도학습 이 해결할 수 있습니다. 지도학습, 비지도학습, 강화학습과 같은 기술들을 포괄적으로 뭐라고 한다고요? 머신 러닝 이라고 합니다. 바로 이 머신러닝이 오늘날 인공지능을 구현하는 가장 유명하고 유망한 분야라고 할 수 있습니다.