전체 글 37

[AI-04] 학습이 일어나는 곳 : 인공신경망

기계가 학습을 하는 방법에 대해 이제까지 살펴보았는데, 물론 이러한 논리적인 측면도 중요하지만 결국에는 이 모든 논리가 일어나는 실질적인 주체가 필수적일 것이다. 이러한 학습이 일어나는 곳이 바로 인공신경망(人工神經網; Artificial Neural Network)인데, 이번 글에서는 이에 대해 다루고자 한다. 인공 신경망은 인체의 정보 처리를 모방하여 만든 소프트웨어 알고리즘으로, 우리 몸의 신경 조직인 뉴런(Neuron)과 그 주변 조직의 움직임을 본딴 형태로 구성되어 있다. 즉, 뉴런과 비슷한 역할을 하는 노드(Node)로 연결된 망(Net)을 만들어 동작하도록 함으로써, 인간과 유사하게 정보를 처리할 수 있도록 한 것이다. 각 노드는 작업의 여러 요인 중 각 하나에 대해 가설 H(x)=Wx+b에..

[AI-03] 오차를 줄여나가다: 경사하강법

이전 글을 통해 기계가 어떤 식으로 학습을 하며, 어떤 목표로 학습을 하는 지까지 살펴보았다. 즉, 선형 회귀라는 이론적 배경을 바탕으로 데이터와 가설 간의 격차를 줄여나가며 가장 적은 격차를 갖는 가설을 향해 알고리즘을 수정해간다는 것이다. 이 과정에서 자신의 알고리즘을 검증하고 오차(비용)을 계산하기 위해 제곱오차함수를 사용하여 비용을 계산하는데, 이 함수로부터 최소의 오차를 찾아나가는 방식이 오늘 공부할 경사하강법(傾斜下降法; Gradient Descent)이다. 경사하강이란 이름 그대로 보여주듯이, 경사(傾斜; Gradient, 비스듬히 기울어짐)를 하강(下降; Descent, 내려옴)하는 식으로 극점(極占)을 찾는 것을 의미한다. 즉, 가장 낮은 곳을 찾기 위해 경사를 비스듬히 내려오는 식의 방..

[AI-02] '배움'의 목표를 잡다: 비용함수와 제곱오차

이전 글에서는 기계 학습의 기본적인 개념에 대해 소개하고, 그 본질이 많은 데이터의 분포를 최소의 손실로 아우를 수 있는 최적의 '선형 회귀' 식(式, Function)을 찾는 것이며 식의 가중치(Weight)와 편향(Bias)을 보정하여 가장 적은 손실을 만들어 가는 과정을 기계의 '학습'이라고 부른다는 사실을 공부해보았다. 이 때 데이터와 학습 과정에서의 회귀 식이 그리는 어떤 가상의 선(線) 간의 거리를 비용(Cost)이라고 하는데, 즉 학습의 목표는 특정 작업의 데이터에 대해 이 비용이 가장 적은 선에 대한 식을 찾는 것으로 다시 정리할 수 있겠다. 그런데, 그렇다면 그냥 선과 점 사이의 거리(차)를 모두 구해 더한 평균을 내면 그 식의 비용을 계산할 수 있지 않을까? 위의 도식에서 X=1일때와 ..

[AI-01] 선으로 돌아가는 대수 : 선형회귀

기계학습 (Machine Learning). 첫 인상으로는 상당히 복잡해보이고 어려워보이는 개념이다. 뭔가 단어는 많이 들어봤는데, 워낙 전문적인 용어처럼 느껴져서 자세히 알아본 적이 없었던 탓이다. 그러나 기계학습, 조금 자세히 알아보니 개념 자체는 생각보다 어렵지 않다. 그럼 어떤 개념일까? "A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E." 카네기 멜론 교수이자 인공지능 연구의 대가 중 한 명인 ..

[React] 컴포넌트 (Component) 이해하기

이전에 소개한 바와 같이, 리액트 네이티브는 JSX라는 자바스크립트 언어 기반의 마크업이 결합된 형태의 언어를 사용한다. 이로 인해 리액트 네이티브 개발 시에는 컴포넌트 패턴(Component Pattern)으로 분류되는 디자인 패턴을 주로 사용하게 된다. 컴포넌트 패턴을 이해하기 위해 기존의 모델(Model)-뷰(View)-컨트롤러(Controller)로 대표되는 MVC 패턴과 비교하여 보자면, MVC 패턴은 데이터와 사용자 UI, 그리고 이들을 조작하는 조작부가 각기 분리되어 모듈화 됨으로써 작동하였다. 매우 거칠게 대표적으로 전통적인 웹 개발에서의 사례를 들면, DB-HTML+CSS-JS 와 같은 형태가 이에 해당한다고 할 수 있다.  반면 JS를 기반에 둔 리액트 (네이티브)는 태생적으로 뷰와 컨..

React.Native 2024.04.22

[React] JSX 이해하기

리액트는 JSX라는 언어를 사용하는데, 이는 Javascript XML의 줄임말이다. Javascript 라는 말이 들어가는 것에서 알 수 있듯이 Javascript 언어를 기반으로 하는데, 뒤에 XML(Extensible Markup Language) 이라는 말이 붙는 것에서 이것이 HTML과 같이 마크업으로 쓰이는 언어라는 것을 보여준다. import React from 'React';import {StyleSheet, View} from 'react-native';export default function App () {return ( );}const styles = StyleSheet.create ({ container : { flex: 1, bac..

React.Native 2024.04.19

[React] 리액트 네이티브, 기본부터 알고 가자.

모든 것을 시작하기에 앞서서, 리액트 네이티브를 이해하기 위한 기본 개념을 알고 넘어가고자 한다. 리액트 네이티브는 '크로스 플랫폼' 타겟의 '스크립트 언어 기반' '모바일 어플리케이션 개발 라이브러리'이다. 이 말부터 한번 이해해보자. 1. 크로스 플랫폼크로스 플랫폼 (Cross Platform)이란 말 그대로, '플랫폼'을 넘나드는 것을 의미한다. 당연히 여기서 말하는 플랫폼이란, 리액트 네이티브가 목표로 하는 모바일 어플리케이션 플랫폼을 의미하고 현 시점에서는 양대 모바일 플랫폼인 AndroidOS 와 iOS를 의미한다. 크로스 플랫폼은 '하이브리드 앱' 이라고도 하는데, 개발된 UI를 브릿지 (Bridge)를 통해 Android와 iOS 각각의 베이스인 네이티브 스레드(Native Thread)와..

React.Native 2024.03.22
728x90
반응형