<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=175.113.187.72</id>
	<title>ZeroWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=175.113.187.72"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php/Special:Contributions/175.113.187.72"/>
	<updated>2026-05-14T19:04:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%95%B1%EC%9D%B4%EC%97%86%EB%84%A4&amp;diff=63903</id>
		<title>앱이없네</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%95%B1%EC%9D%B4%EC%97%86%EB%84%A4&amp;diff=63903"/>
		<updated>2017-03-25T05:15:19Z</updated>

		<summary type="html">&lt;p&gt;175.113.187.72: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
== 개요 ==&lt;br /&gt;
* ZeroPage 앱이 없습니다. 그래서 만들려고 합니다 ㅎ(오픈 소스)&lt;br /&gt;
* ~~사실 1년 동안 안하다가 이제서야....~~&lt;br /&gt;
* 앱 이름은 ZeroPage Helper&lt;br /&gt;
* github : https://github.com/ZeroPage/i_have_no_apps&lt;br /&gt;
&lt;br /&gt;
== 참가자 ==&lt;br /&gt;
* [[김한성]] [[이승현]], [[신형철]], [[심재철]]&lt;br /&gt;
== 기획 ==&lt;br /&gt;
* 초안&lt;br /&gt;
** 특정 그룹, 인원에 대한 타이머, 랭킹 시스템(내부 대회용)&lt;br /&gt;
** 새소식 or 공지 알림(푸시 알람)&lt;br /&gt;
** 익명투표(회장 선거용)&lt;br /&gt;
** 회원 관리 - 관리자용&lt;br /&gt;
&lt;br /&gt;
* [[앱이없네/2017.03.19]] - 기획 수정&lt;br /&gt;
** https://github.com/ZeroPage/i_have_no_apps/issues/4&lt;br /&gt;
== 진행 내용 ==&lt;br /&gt;
※ 매주 모여서 코드 리뷰 및 이슈 해결 후 작성&lt;br /&gt;
* [[앱이없네/2017.03.19]]&lt;br /&gt;
* [[앱이없네/2017.03.25]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>175.113.187.72</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=%EC%A1%B8%EC%A7%80%EB%A7%90%EA%B3%A0_%EB%94%A5%EB%9F%AC%EB%8B%9D&amp;diff=74412</id>
		<title>졸지말고 딥러닝</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=%EC%A1%B8%EC%A7%80%EB%A7%90%EA%B3%A0_%EB%94%A5%EB%9F%AC%EB%8B%9D&amp;diff=74412"/>
		<updated>2016-03-29T17:09:49Z</updated>

		<summary type="html">&lt;p&gt;175.113.187.72: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 졸지말고 딥러닝 =&lt;br /&gt;
&lt;br /&gt;
== 일시 ==&lt;br /&gt;
* 2016 / 03 / 29 - 화요일 오후 7시&lt;br /&gt;
&lt;br /&gt;
== 강사 ==&lt;br /&gt;
* 변형진 선배님&lt;br /&gt;
 &lt;br /&gt;
== 내용 ==&lt;br /&gt;
* 딥러닝이 무엇인지 설명해주고 어떤 원리로 작동하는 지에 대한 설명&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 세부 내용 ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;확률적 모델링&#039;&#039;&#039;: 확률적 모델링을 통해 딥러닝을 할 수 있음.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Supervised&#039;&#039;&#039;: H: x → y (H: hypothesis, x: 입력 데이터, y: 출력 데이터)&lt;br /&gt;
               -x 라는 입력데이터가 주어졌을 때 그에 해당하는 출력인 y를 알려주고&lt;br /&gt;
               x를 입력했을 때 y라는 데이터가 나올 수 있는 가설을 세우고&lt;br /&gt;
               그 차이를 줄이는 것.&lt;br /&gt;
 &lt;br /&gt;
&#039;&#039;&#039;Unsupervised&#039;&#039;&#039;: 위의 식에서 y가 없고 x만 존재.&lt;br /&gt;
               이 경우 x에서 특징들을 찾아내어 분석&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Reinforcement&#039;&#039;&#039;: 알파고의 자기 학습을 예로 들면,&lt;br /&gt;
               알파고가 바둑을 두었을 경우 그 경우가 좋은 경우인지 나쁜 경우인지&lt;br /&gt;
               나중에 reward를 알려줌.&lt;br /&gt;
               이를 설명하면&lt;br /&gt;
               어떠한 상태 S(t)는 어떠한 행동 A(t)에 의해 S(t+1)로 변하게 되는데&lt;br /&gt;
               이 경우가 좋은 지 나쁜지는 나중에 결과로 알 수 있음.&lt;br /&gt;
               나중에 P&amp;amp;#91;S(t),A(t)&amp;amp;#93;:reward 로 GOOD / BAD 를 알려줌.&lt;br /&gt;
&lt;br /&gt;
               //오늘은 자세히 설명을 안하신다고 언급&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Clustering&#039;&#039;&#039;: 어떠한 기준으로 군집합을 나누는 데 이 때 기준을 미리 정해주지 않는다.&lt;br /&gt;
               이 때 기준은 데이터들 간의 수학적 거리를 통해 정해진다.&lt;br /&gt;
               군집합을 나누는 기법에는 여러 기법이 있다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Classification&#039;&#039;&#039;: 이 방법은 분류 기준이 주어지는 데&lt;br /&gt;
               예를 들면, 사람들을 안경을 쓴 사람과 안 쓴 사람을 구분한다고 하자.&lt;br /&gt;
               그러면 안경을 쓴 사람들의 사진과 안경을 안 쓴 사람들의 사진을 보여주고&lt;br /&gt;
               그 차이를 학습시킨다. 그 후 새로운 사람 데이터를 주었을 때 &lt;br /&gt;
               이 사람이 안경을 쓴 사람인지 안 쓴 사람인지 구분&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Linear Regression&#039;&#039;&#039;: 선형회귀분석&lt;br /&gt;
               y = wx + b (w,x: linear combination)&lt;br /&gt;
               이산 분포 데이터들을 가지고 가정을 한다. 그러한 가정으로 가설을 세우고&lt;br /&gt;
               실제의 값과 가설을 세워 나온 값들의 차이를 계산하여 그 차이를 최소화하는 것.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;perceptron&#039;&#039;&#039;: 뉴론 네트워크의 기본으로 등장&lt;br /&gt;
               y = w1x1 + w2x2 + ... + b&lt;br /&gt;
               (w1x1 + w2x2 + ... +wnxn = 선형결합, b = 평행이동)&lt;br /&gt;
               &lt;br /&gt;
&#039;&#039;&#039;Logistic Regression&#039;&#039;&#039;: 선형회귀가 입력 데이터에 해당하는 데이터를 출력한다면&lt;br /&gt;
               로지스틱 회귀분석은 분류를 하기 위해 사용된다.&lt;br /&gt;
               위에 나온 퍼셉트론으로 대소 비교하여 x가 해당 범위에 포함되는지 확인.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;최적화문제&#039;&#039;&#039;: 실제 이런 것은 관측 데이터와 가설의 차이를 최소화하는 최적화 문제이다.&lt;br /&gt;
               &#039;&#039;&#039;최적화 Objective Function&#039;&#039;&#039;&lt;br /&gt;
               Loss func ( Mean Square Error )&lt;br /&gt;
                y = H(x) + α&lt;br /&gt;
                α를 최소화, |α| or α^2 를 이용하여 거리의 최솟값을 찾는다.&lt;br /&gt;
                미분을 통해 최적화를 하는데&lt;br /&gt;
                |α|의 경우 0 일 때, 미분을 할 수없다는 문제가 있어&lt;br /&gt;
                α^2를 주로 사용한다.&lt;br /&gt;
&lt;br /&gt;
               Cross func ( Cross Entropy Error )&lt;br /&gt;
                argmin θ = -∑ y * log H(x,θ)&lt;br /&gt;
                여기서 θ는 w와 b의 조합&lt;br /&gt;
                H(x,θ)는 확률분포를 따라 ∑H(x,θ) = 1 이다.&lt;br /&gt;
                Softmax func&lt;br /&gt;
                여기서 argmin θ 앞에 -를 붙이는 것은 로그함수의 특징을 보면 알 수 있다.&lt;br /&gt;
                log함수는 0 &amp;lt; x &amp;lt; 1 일 경우 음수의 값을 가진다.&lt;br /&gt;
                이를 -를 붙여 양수의 값을 취한다.&lt;br /&gt;
                이 때 argmin θ의 값이 0에 가까워 질수록 가장 정확하다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Gradient descent&#039;&#039;&#039;: Grobal Minima를 찾기 위해 미분을 해서 0이 되는 점을 찾아야하는데&lt;br /&gt;
                보통 미분은 대수식이 있을 경우 손쉽게 미분가능하지만&lt;br /&gt;
                딥러닝의 경우 수식이 정해지지 않아 대수적으로 미분이 불가능하다.&lt;br /&gt;
                그 때문에 Gradient descent를 사용하여 극값에 도달한다.&lt;br /&gt;
                다른 방법으로는 &#039;뉴턴 메소드&#039;가 있지만&lt;br /&gt;
                기울기와 이계도를 함수를 사용하여 다소 복잡한 면이 있다.&lt;br /&gt;
                Gradient descent의 경우 그 함수가 convex 함수인지 non-convex 함수인지가 중요한데&lt;br /&gt;
                non-convex함수일 경우 지역 최적화(local optima)의 문제에 빠질 수 있다.&lt;br /&gt;
                수식으로 나타내면&lt;br /&gt;
                w(n+1) = w(n) - α∇wL&lt;br /&gt;
                이 때 - 를 하는 이유는 기울기에 반대 방향으로 가야지 최소값을 찾을 수 있기 때문이다.&lt;br /&gt;
                그리고 α를 &#039;&#039;&#039;러닝메이트&#039;&#039;&#039;라고 하는데&lt;br /&gt;
                러닝메이트가 클 경우, 빨리 수렴하지만 자칫 잘못하다간 탈출, 즉 한없이 커질 수가 있다.&lt;br /&gt;
                러닝메이트가 작을 경우, 계산량은 많지만 크기의 변화는 적어 오래 걸린다.&lt;br /&gt;
                따라서 러닝메이트를 적절히 조정해야하는데 보통 처음에 크게 하고 점차 decay(감소)시킨다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Multi-Layer Perceptron&#039;&#039;&#039; &lt;br /&gt;
                DAG(Directed Assignment Graph)&lt;br /&gt;
                앞서 말한 perceptron이 층을 이룬 구조다. 이 때 몇가지 조건이 필요한데&lt;br /&gt;
                우선 cycle이 없고, 방향이 한쪽으로만 가야한다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Non-linear Activation Function&#039;&#039;&#039;&lt;br /&gt;
                Non-linear Activation Function에는 3가지가 있는데&lt;br /&gt;
######### Sigmoid&lt;br /&gt;
######### ReLU&lt;br /&gt;
######### tanh&lt;br /&gt;
                이다. 위의 함수는 구글에서 찾을 경우 쉽게 이미지를 볼 수 있으니 참조하면 좋다.&lt;br /&gt;
                Sigmoid의 경우 0일때 미분값이 가장 크고 양 극으로 갈수록 미분값이 0에 가까워진다.&lt;br /&gt;
                f(x) = 1 / 1 + exp(-x)&lt;br /&gt;
                ReLU의 경우 0을 기준으로 음수이면 제거하고 양수일 경우 미분값이 1이다.&lt;br /&gt;
                ReLU는 Rectified Linear Unit의 약자로 양방향으로 가는 것을 한뱡향으로 보내준다.&lt;br /&gt;
                전자공학에서 사용하는 Rectifer와 유사&lt;br /&gt;
                f(x) = max(0,x)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Universal Approximation&#039;&#039;&#039;&lt;br /&gt;
                multi-layer perceptron에서 non-linear activation function을 만족할 경우&lt;br /&gt;
                universal approximation, 즉 모든 함수를 모방가능하다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Back Propagation&#039;&#039;&#039;&lt;br /&gt;
                Multi-Layer Perceptron에서 변경할 경우 출력노드와 바로 밑의 노드 층만 변경이 된다.&lt;br /&gt;
                그보다 낮은 층의 노드들의 가중치를 변경하기 위해&lt;br /&gt;
                출력노드 가중치의 미분 값을 가지고 내부노드로 역으로 전파한다.&lt;br /&gt;
                위 같은 특성 때문에 &#039;역전파&#039;라고 한다.&lt;br /&gt;
                &lt;br /&gt;
&#039;&#039;&#039;Issues of MLP&#039;&#039;&#039;&lt;br /&gt;
                MLP의 경우 4가지의 문제점이 있다.&lt;br /&gt;
######### Vanishing Gradient&lt;br /&gt;
######### Lots of labeled data&lt;br /&gt;
######### Overfitting&lt;br /&gt;
######### Local optima&lt;br /&gt;
                &lt;br /&gt;
                우선 Vanishing Gradient의 문제점은 Sigmoid와 tanh의 함수를 보면 이해하기 쉽다.&lt;br /&gt;
                Sigmoid와 tanh는 0에서 최대 기울기를 가진 후 양극으로 갈수록 기울기가 0이 되는데&lt;br /&gt;
                이 때 그 값이 너무 0에 근사하여 변화가 거의 없어 오랜 시간이 걸린다.&lt;br /&gt;
                위 같은 문제를 해결하기 위해 ReLU를 사용하는데&lt;br /&gt;
                ReLU의 경우 필요없는 부분은 0으로 만들어 계산을 용이하게 한다.&lt;br /&gt;
                구글 딥러닝 개발자는 Revolution에서 Re와 LU를 강조하여 ReLU가 딥러닝에 큰 이바지를 함을 나타내었다.&lt;br /&gt;
                &lt;br /&gt;
                Lots of labeled data는 수식을 찾기 위해서 답을 알고 있는 데이터가 많아야한다는 것이다.&lt;br /&gt;
                최근 빅데이터를 이용한 많은 개발이 이루어지고 있어 이 부분에 큰 도움이 된다.&lt;br /&gt;
                &lt;br /&gt;
                Overfitting 문제는 통계의 문제점에서 발생한다.&lt;br /&gt;
                모수를 전수조사 할 수 없으므로 임의의 표본을 골라 계산을 하게 되는데&lt;br /&gt;
                이 경우 표본에서만 계산이 잘되고 나머지 부분이 잘 안되는 경우가 있다.&lt;br /&gt;
                이런 경우를 샘플 측정이 전체측정이라고 착각한다고 말하는 데&lt;br /&gt;
                더 많은 데이터, 더 깊은 MLP를 구성할수록 overfit이 일어나기 쉽다.&lt;br /&gt;
                이럴 경우 drop-out을 하여 Overfitting 문제를 해결한다.&lt;br /&gt;
                drop-out이란 랜덤하게 노드를 빼서 학습하는 것이다.&lt;br /&gt;
                이럴 경우 가중치의 값은 평균치에 도달하게 되어 overfitting을 해결할 수 있다.&lt;br /&gt;
                ReLU와 유사&lt;br /&gt;
&lt;br /&gt;
                Local optima 문제는 위에서 언급한 것과 같이 non-convex 함수일 경우 일어나는데&lt;br /&gt;
                이런 경우 모든 미분값이 0이거나 다 올라가는 경우이어야 한다.&lt;br /&gt;
                데이터가 많아지면 많아질수록 모든 미분값이 0이거나 다 올라가는 경우는 매우 희박해진다.&lt;br /&gt;
                따라서 위 같은 경우는 일어날 일이 거의 없으므로 생각하지 않는다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;프리티레이닝(?)&#039;&#039;&#039;&lt;br /&gt;
                듣기론 저렇게 들었는데 정확하지는 않다. 구글 검색을 해도 안나오는 것을 보니 혹시&lt;br /&gt;
                잘 들으신 분이 이것을 본다면 정정해주길 바란다.&lt;br /&gt;
                위의 방법을 사용할 때는 2가지 경우가 있는데&lt;br /&gt;
######### 레이블이 달린 데이터가 얼마 없을 때&lt;br /&gt;
######### ReLU가 아닐 때&lt;br /&gt;
                이 2가지 경우 위의 방법을 사용한다. 위의 방법을 설명하자면&lt;br /&gt;
                적당한 Clustering 후 Classification을 하는 것인데&lt;br /&gt;
                위에서 언급한 바와 같이 Clustering은 기준이 주어지지 않고 수학적 계산으로 기준을 찾는 것이다.&lt;br /&gt;
                이렇게 기준을 찾은 후 그 기준을 가지고 Classification을 한다.&lt;br /&gt;
                &lt;br /&gt;
                노드가 층에 많이 있을 수록 Universal Approximation, 즉 모든함수를 모방할 가능성이 증가한다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Deep Learning&#039;&#039;&#039;&lt;br /&gt;
######### Representation Learning&lt;br /&gt;
######### Traditional Machine Learning&lt;br /&gt;
********* Hand-craft feature extraction&lt;br /&gt;
                 //필기의 순서가 뒤죽박죽이여서 키워드만 적겠습니다.&lt;br /&gt;
                ex)&lt;br /&gt;
                형태소 분석&lt;br /&gt;
                아버지가/방에/들어가시/ㄴ다&lt;br /&gt;
                아버지/가방에/들어가시/ㄴ다&lt;br /&gt;
                두 가지의 경우 중 더 높은 확률로 나타난 값을 기준으로 분석&lt;br /&gt;
                &lt;br /&gt;
                베이즈 정리&lt;br /&gt;
&lt;br /&gt;
                I am a man&lt;br /&gt;
                I, a, m, n으로 이루어진 차원을 축소하여 유의미한 vector를 찾아내는 것을&lt;br /&gt;
                임베딩이라고 한다.&lt;br /&gt;
                차원 축소시 축소할 경우 데이터의 값이 잘 분산 되는 것으로 한다.&lt;br /&gt;
                = 특징이 잘 드러나도록 차원을 축소&lt;br /&gt;
&lt;br /&gt;
                Deep Learning을 하다보면 모델이 깊어질 수 밖에 없음.&lt;br /&gt;
                GoogLeNet의 경우 깊이가 20 이상 되는데&lt;br /&gt;
                이 경우 용량만 수십 GB를 차지하며 연산해야하는 연산 수 또한 많아&lt;br /&gt;
                GPU로 연산을 해야한다. 이와 같은 문제 때문에 모델을 축소해야한다.&lt;br /&gt;
                앞에 이야기를 한 내용을 &#039;&#039;&#039;Feedforward Network&#039;&#039;&#039;라 한다.&lt;br /&gt;
                &lt;br /&gt;
&#039;&#039;&#039;Recurrent Neural Network&#039;&#039;&#039;&lt;br /&gt;
                이것은 두 가지 특징을 가지는데&lt;br /&gt;
######### weight sharing&lt;br /&gt;
######### sequential data&lt;br /&gt;
&lt;br /&gt;
                이것은 데이터가 깊을 필요가 없지만 이전에 데이터가 나중에 영향을 주므로&lt;br /&gt;
                시간 또는 데이터의 시퀀스가 매우 중요하다.&lt;br /&gt;
                번역이나 음성데이터 분석할 때 사용.&lt;br /&gt;
                ex) 구글 자동완성, 대화 프로그램(seq2seq)&lt;br /&gt;
                RNN를 식으로 나타내면 아래와 같은 식으로 나타낼 수 있다.&lt;br /&gt;
                H(t) = w(Xt) + vH(t-1)&lt;br /&gt;
                y(t) = α(H(t))&lt;br /&gt;
                RNN의 Back propagation의 경우 α는 고려되지 않는다.&lt;br /&gt;
                하지만 H(t)에서 Back propagation 할 경우 v^n 이므로 계산할 양이 많다.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Convolution Neural Network&#039;&#039;&#039;&lt;br /&gt;
                현재 제일 잘 나감.&lt;br /&gt;
                Local connectivity의 특성을 가지고 있어 인접한 노드에만 영향을 받는다.&lt;br /&gt;
                지금까지 Full connection MxN이었지만 &lt;br /&gt;
                만약 Local connectivitiy가 3이라면 &lt;br /&gt;
                3 x N 이되며&lt;br /&gt;
                w 또한 재사용할 경우 복잡도는 확 낮아진다.&lt;br /&gt;
&lt;br /&gt;
== 추가 내용 ==&lt;br /&gt;
* 이 후 내용은 그림 설명이 주된 내용이라 올리지 못하는 것을 아쉽게 생각합니다.&lt;br /&gt;
* 구글에서 drawNet 쳐서 들어가보면 이미지 딥러닝을 이해하기 쉽게 보여준다.(IE에서 보지마세요. 힘들어요.)&lt;br /&gt;
* Super resolution deep learning - 저해상도의 사진의 해상도를 올려줌 (연관검색어: 김지원 - 남자이니 기대 ㄴㄴ)&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>175.113.187.72</name></author>
	</entry>
</feed>