▶ Radial Basis Function

- 방사형 구조를 기본으로 하는 네트웍으로서 1개의 은닉층에 확률 가우시안이 적용된다

 

 ▷확률 가우시안

샘플이 5개가 있으면 각 이벤트의 확률은 20%이고 두개의 샘플이 나오는 확률은 (1,2)(1,3)(1,4)(1,5)(2,1)(2,2)(2,3)~ 25개의 경우의 수가 나온다. 이러한 확률은 다양하게 발생되고 교집합과 합집합 확률, 조건부 확률 등이 있다.

여기서 좀 더 생각해야 할것은

1) Bayes' rule

두 사건 A와 B에 대해서 다음 식이 성립하며

 

 

두 사건이 서로 독립일때 아래 식이 성립한다

 

 

또한 확률분포는 균일분포와 정규분포로 표현할 수 있는 확률밀도함수(Probability Density Function : PDF)도 포함된다

 

 ▷방사형 구조의 RBF

 

 

1. 특징

- 다층 퍼셉트론의 은닉층에 해당되는 층은 비선형으로 방사형의 구조로서 이 층은 RBF 뉴런들을 포함, 전달함수로서 가우스 분포를 사용

- 은닉층이 1개이고, 유클리디안 거리와 역전파 알고리즘을 사용하며 안정성 판별이 가능

 

2. RBF 네트워크의 은닉층의 값

 

여기서 x는 입력, uj 는 채택 필드에 해당되는 영역 중심, 는 채택 필드의 폭, 는 j번째 뉴런의 출력

- 출력층은 전형적인 선형 뉴런들의 층으로 은닉 뉴런 출력의 선형 변환을 진행함

  :  이 층은 다층 퍼셉트론에서 선형 출력 층에 대응되고 최소제곱 알고리즘을 사용하여 전개함. 출력 층은 임계 값들을 사용할 수도 있고, 그렇지 않을 수

     도 있음

입력 벡터 x가 채택 필드의 중심의 근방에 있는 것이라면, 그것에 관련된 은닉 뉴런은 활성화되며 입력벡터가 두 개의 채택필드 중심 사이에 위치하면서

  채택 필드 폭 내에 속하는 것이라면, 은닉 층 뉴런들은 모두 부분 활성화됨

- 입력 벡터들이 모두 채택필드로부터 멀리 떨어져 있을 때 은닉 층의 활동은 없고, RBF 출력은 출력 층 임계 값들과 같음

- RBF는 지도 학습적인 방식으로 훈련되는 지역적인 네트워크

  `이것은 전역적 네트워크인 다층 퍼셉트론과 대조

  `지역적인 것과 전역적인 것의 구별은 함수 근사에 의해 수용되어진 입력 표면의 크기로 결정

 

3. 출력층의 값

여기서 C는 가중치, 가 비선형함수로 위의 은닉층의 값이고 b가 bias임

 

4. 훈련과정

훈련과정에서 역전파 알고리즘을 적용하고 있음

출력과정에서 가중치 c와 bias b는 다음층에 대해서 1:1 대응

 

 

가중치 C와 bias는 시냅스이다.

 

 

 

 

기계 학습의 분야 중 하나로 패턴 인식, 자료 회귀 분석을 위한 지도 학습 모델이며, 주로 분류와 분석에 사용된다. 두 카테고리 중 어느 하나에 속한 데이터의 집합이 주어졌을 때, SVM 알고리즘은 주어진 데이터 집합을 바탕으로 새로운 데이터가 어느 카테고리에 속할지 판단하는 비확률적 이진 선형 분류 모델을 만든다. 분류 용도의 신경망은 학습 데이터에 대한 오류를 최소화하는 가중치를 찾는 것이 학습 단계의 목표이다. 다층 퍼셉트론의 경우에 오차 함수 E를 최소화하는 가중치를 찾는다.

다시말하면 SVM은 원 훈련데이터를 비선형 매핑을 통해 고차원으로 변환한다. 이 새로운 차원에서 초평면을 최적으로 분리하는 선형 분리를 찾는다. 즉 최적의 Decision Boundary(의사결정 영역)을 찾는다.

왜 데이터를 고차원으로 보낼까?

2차원에서 비선형 분리가 있다면 이를 한 차원 높은 3차원으로 Mapping하게 되면 선형분리할수 있게 된다. 따라서 충분히 큰 차원으로 적절히 비선형 매핑을 사용하여 두개의 부류를 가진 데이터는 초평면에서 항상 분리될 수 있다..

SVM은 복잡한 비선형 의사결정 영역을 모형화 할 수 있기 때문에 매우 정확하며, 다른 모델들 보다 Over Fitting되는 경향이 적다.

아래 그림은 부류가 2개인 데이터를 분류하는 분류기의 결정 경계에 해당하는 직선들을 보인 것이다. 결정경계 h1은 회색점과 노란점들을 제대로 구별하지 못하기 때문에 바람직하지 않다. h2와 h3는 모두 두 부류를 젣로 분류하기 때문에 오차 함수 관점에서 두 결정 경계가 같은 정도로 우수한 것으로 판정된다. 학습에 사용되지 않은 데이터를 얼마나 잘 분류하는지를 의미하는 일반화 특성 관점에서 h2와 h3를 비교해 보자. h2는 결정 경계 바로 근처에 학습 데이터가 존재하지만, h3는 학습 데이터에서 멀리 떨어져 있다. 학습 데이터와 조금 차이가 있는 데이터가 발생할 때, h3가 h2보다 더 일관되게 판단을 할 수 있다. 결정 경계와 가장 가까이에 있는 학습 데이터까지의 거리를 여백(margin)이라고 한다. 여백 관점에서 보면 h3가 h2보다 우수하다고 할 수 있다.

SVM은 Vladimir Vapnik이 제안한 분류기로, 분류 오차를 줄이면서 동시에 여백을 최대로 하는 결정 경계를 찾는다. 이때 결정 경계로부터 가장 가까이에 있는 학습 데이터들을 서포트 벡터 라고 한다.

 

1) 초평면(Hyperplane)

데이터를 분류하는 선을 초평면이라하고 ' 데이터 embeding 공간에서 한 차원 낮은 부분 공간' 으로 정의 한다. 즉 n 차원의 공간에서의 hyperplane은 n-1차원의 subspace를 의미하는 것이며, 3차원의 경우 hyperplane은 2차원의 면이 되고, 2차원의 경우는 hyperplane은 1차원의 선이 된다.

SVM알고리즘은 서포트 벡터와 여유간격을 통해 두 클래스 데이터 사이를 분류하는 최적의 초평면을 구한다.

 

2) SVM의 학습

SVM은 2개의 부류가 있는 분류 문제에 적용되는 분류기이다. 긍정 결과는 +1, 부정 결과는 -1로서 하나의 값을 갖는다. 아래 그림은 2차원 데이터로서 선형적으로 분리가 가능하며 분리할 수 있는 직선은 무수히 많지만 분류 오류를 최소화하는 최적의 직선을 찾아야 하고 3차원 이상에서는 직선이 아닌 최적의 평면을 찾아야 한다. 최적의 초평면(Decision Boundary)을 찾아 분리하는 것이다

 

 

 아래 그림은 위 그림을 세분화하여 데이터를 분리하지만 직관적으로 볼때 오른쪽 그림의 초평면이 더 정확해 보인다

 

식으로 표현해보면 아래와 같다. 가중치 벡터위 그림에서 2차원이 두개의 속성값이 있을 것이다. 예를 들어 

는 속성 의 값이고 b와 w를 추가적으로 사용한다

초평면의 모든것은 위 식을 만족하는 서포트 벡터라고 한다. 아래 그림의 노란색이 그것이고 분류하기 가장 어렵지만 가장 중요한 정보를 준다 분리 초평면으로 부터 H1위의 점까지의 거리는 이고, 이며 w의 유클리드 norm이다. 최대 margin은 이다.

 

 

 

여기서 SVM은 최대 마진 초평면과 서포트벡터를 KKT(Karush-Kunh Tucker)조건과 라그랑지 방법을 이용하여 구한다.

이것은 SVM의 학습문제가 아래와 같은 제약조건 최적화 문제(Constrained Optimization Problem)가 되고

 

이것이 라그랑주 승수를 도입하여 단일 목적 함수인 라그랑주 함수(Lagrangian function) L( )을 최적화하는 문제로 변환될 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1) 신경망

인간두뇌에 대한 계산적 모델을 통해 인공지능을 구현하려는 분야가 신경망.

뇌생리학의 연구에 따르면 인간 두뇌는 신경세포 개 정도이다. 신경세포의 축색돌기는 다른 신경세포의 수상돌기와 연결되는데, 이 연결부위를 신경연접이라한다. 신경연접을 통해 신경세포들은 전기화학적인 신호를 주고 받는데, 다른 신경세포에서 보내 온 신호를 증폭하거나 감쇄하여 받는다. 받아들인 신호는 세포체(cell body)에서 합성되어, 일정 임계값 이상이면, 신경세포는 축색돌기를 통해서 신호를 내보낸다. 신경연접은 신경세포의 기능을 결정하는 부분인데, 인간 두뇌에는 약 개의 신경연접이 있다고 한다. 이러한 단순한 신경세포들을 이용하여 인간 두뇌는 지능, 감정, 자율신경 조절과 같은 일을 해낸다.

 

2) 퍼셉트론

1958년 Frank Rosenblatt, 1928~1971)이 제안한 초창기 신경망 모델. Perceptron은 신경세포를 네트워크 형태의 계산모델로 표현한 것.

퍼셉트론은 다수의 신호(input)을 입력받아서 하나의 신호(output)를 출력한다 이는 뉴런이 전기신호를 내보내 정보를 전달하는 것과 비슷해 보인다. 그리고 뉴런의 수상돌기나 출색돌기처럼 신호를 전달하는 역할을 퍼셉트론에서는 weight가 그 역할을 한다. 가중치라고 부르는 이 weight가 그 역할을 한다. 가중치라고 부르는 이 weight는 각각의 입력신호에 부여되어 입력신호와의 계산을 하고 신호의 총합이 정해진 임계값을 넘었을 때 1을 출력한다. 넘지 못하면 0 또는 1을 출력한다

각 입력신호에는 고유한 weight가 부여되며 weight가 클수록 해당 신호가 중요하다고 볼 수 있다. 여기서 기계학습이 하는 일은 이 weight(입력을 조절하니 매개변수로도 볼 수 있음)의 값을 정하는 작업이라고 할 수 있다. 학습 알고리즘에 따라 방식이 다를 뿐 이 weight를 만들어내는 것이 학습이라는 차원에서는 모두 같다고 할 수 있다.

퍼셉트론의 출력 값은 앞에서 말했듯이 1 또는 0(or-1)이기 때문에 선형 분류 모형이라고도 볼 수 있다. 보통 실수형의 입력 벡터를 받아 이들의 선형 조합을 계산하는 것이며 다른 포스팅에서 다룬 벡터의 내적과도 유사하다. 

앞의 퍼셉트론 수식에서 나오는 세타θ를 -b로 치환하여 좌변으로 넘기면 

    b + w1x1 + w2x2 <0    => 0
    b + w1x1 + w2x2 >=0  => 1

과 같이 되며 여기에서 b를 편향(bias)라고 할 수 있다. 기계학습 분야에서는 모델이 학습 데이터에 과적합(overfitting)되는 것을 방지하는 것이 중요하다. 여기서 과적합이라 함은 모델이 엄청 유연해서 학습 데이터는 귀신같이 잘 분류하지만, 다른 데이터를 넣어봤을 때는 제대로 성능을 발휘하지 못하는 것을 말한다. 어느 데이터를 넣어도 일반적으로 잘 들어맞는 모델을 만드는 것이 중요하다.


따라서 앞에서 설명했듯이 편향은 θ(theta)로 학습 데이터(Input)이 가중치와 계산되어 넘어야 하는 임계점으로 이 값이 높으면 높을 수록 그만큼 분류의 기준이 엄격하다는 것을 의미한다. 그래서 편향이 높을 수록 모델이 간단해지는 경향이 있으며 (변수가 적고 더 일반화 되는 경우) 오히려 과소적합(underfitting)의 위험이 발생하게 된다. 반대로 편향이 낮을수록 한계점이 낮아 데이터의 허용범위가 넓어지는 만큼 학습 데이터에만 잘 들어맞는 모델이 만들어질 수 있으며 모델이 더욱 복잡해질 것이다. 허용범위가 넓어지는 만큼 필요 없는 노이즈가 포함될 가능성도 높다. 이를 편향과 분산의 트레이드오프 관계라고 보통 부르며 기회가 되면 이 부분을 더 다뤄보도록 하겠다. 

하지만 퍼셉트론이 인공지능 분야에서 센세이션을 불러일으켰고 연구 과제도 이쪽으로 몰렸으나 이것이 가지는 한계점이 밝혀지면서 한동안 소외 받는 이론이 되었다. 퍼셉트론을 제시한 로젠블랫은 자살 같은 사고로 세상을 떠났고 시간이 흐른 뒤에야 그의 업적이 재조명 받았다. 퍼셉트론의 한계는 선형으로 분류를 할 수 있지만 XOR와 같이 선형 분류만 가능하며 비선형 분류는 불가능하다는 점이다.


XOR 논리는 exclusive(배타적) 논리연산이다. 아래의 진리표를 보면, x1과 x2 중 어느 한쪽이 1일 때만 1을 출력한다.

 x1

x2 

 0

 1

 0

 0

 1

 1

 

아래 그림을 보면 XOR에서는 선형으로 (직선 하나로)분류가 불가능함을 알 수 있다

 

출처: http://ecee.colorado.edu/~ecen4831/lectures/NNet3.html

 

퍼셉트론의 한계를 간략히 말하면, 직선 하나로 나눈 영역만 표현할 수 있어 XOR과 같은 데이터 형태는 분류가 불가능하다는 한계가 있다.

 

 

-----------------------------------------------------------------------------------------------------------------------------------

 

 

다른 신경세포의 축색돌리로 부터 오는 입력 신호를 로 표현하고, 신경연접에서 신호의 감쇄 또는 증폭 정도를 가중치 벡터

로 나타낸다. 세포체 내에서의 신호의 합성은

여기서, W0는 바이어스 항이라 하고, W0 = W0*1 = W0*W0으로 놓을 수 있으므로 항상 X0 =1의 값을 갖는 특수한 0번째 입력을 추가하여 식을 간략하게 한것이다.  -W0 는 신호 출력의 임계값이다. 합성된 신호의 임계값 이상이면 신호를 출력하는데, 퍼셉트론은 sigmoid와 다른 step function을 사용하여 1 또는 -1 값을 출력한다. 계단함수와 같이 출력값의 형태를 결정하는 함수를 전달함수 또는 활성화 함수(Activation Function)라고 한다. 입력 x에 대한 퍼셉트론의 출력 y는 아래와 같이 표현 가능하다.

f는 퍼셉트론의 전달 함수를 나타내는데, 퍼셉트론은 계단 함수를 전달함수로 사용한다.

 

 

위와 같이 LTU로 된 단순 퍼셉트론의 학습 원리가 있다. 먼저 가중치를 임의의 값으로 초기화 한후 학습 패턴 x 를 입력하여 퍼셉트론 출력 f가 목표 출력  y와 같으면 가중치를 변경하지 않고, 다르면 가중치를 변경하는 방식으로 학습한다. 퍼셉트론 출력이 목표 출력과 일치하지 않는 경우는 다음과 같이 두 가지가 있으며 각각의 경우 가중치 변경 규칙을 다음과 같다.
• 목표 출력 y=1 인데인 f=-1 경우: 가중치 w를 w+x로 증가시킨다
• 목표 출력 y=-1인데인 f=1 경우: 가중치 w를 w-1로 감소시킨다
이와 같은 방식으로 학습예를 반복적으로 관측하면서 가중치를 변경하면 선형분리가 가능한 분류 문제의 경우 올바른 분류기를 학습해 낼 수 있음을 증명할 수 있다. 이를 퍼셉트론 학습 규칙이라고 한다.

 

학습에서 가중치 벡터 w 와 임계값 요소 b를 결정한다. 나중에 식을 간단하게 전개하기 위해, 항상 1값을 주는 입력 X0=1을 추가하고, 이에 대한 가중치를 b로 만들어주면, s를 벡터연산으로 표현 할 수 있다.

 

따라서, 로젠벨트의 퍼셉트론은 하나의 선형 임계뉴런(LTU, Linear Threshold Unit) 으로 구성된 신경망이다. 후에 나오는 다수의 뉴런으로 구성된 다층퍼셉트론과 명확히 구별하기 위하여 경우에 따라서는 퍼셉트론을 단순 퍼셉트론(Simple Perceptron)이라 부르기도 한다.

 

 

 

 

퍼셉트론은 초창기에 숫자 인식과 같은 흥미로운 결과들을 보여주며, 많은 관심을 끌었지만, XOR(exclusive OR)와 같은 단순한 문제도 해결할 수 없는 단점이 있다. 퍼셉트론은 기본적으로 선형으로 표현되는 결정 경계만을 설정하는데, XOR는 선형 경계로 부류들을 분리할 수 없는 문제이다. 이러한 문제를 선형 분리 불가(linearly inseparable problem)라고 한다. 결국, 퍼셉트론은 선형 분리불가 문제에는 적용할 수 없다는 것이다.

 

단일 퍼셉트론으로는 XOR을 분류할 수 없지만, 다층 퍼셉트론을 만들면 이를 극복할 수 있습니다. 다층(multi-layer)이라는 말은 하나의 퍼셉트론에 또 다른 퍼셉트론을 덧붙인다는 의미로 볼 수 있다. 단층 퍼셉트론이 비선형 영역을 분리할 수 없다는 것이 문제이며 다층으로 할 경우 비선형으로 이를 해결할 수 있다.

 

 

 

 

 

 

 

 

 

 

 

 

1. 1960년대 이전

 - 매커시에 의해 1958년 인공지능 구현을 위한 LISP 언어를 만들었고, 논리(logic)를 사용하여 지식을 표현하고 상식에 대해 추론하는 아이디어를 제안. 로젠블랫(Frank Rosenblatt, 1928-1971)은 1958년 Perceptron 이라는 최초의 신경망 모델을 제안. 학습기능을 가진 기계로 주목을 받으면서 신경망 연구의 첫번째 Boom.... 신경망의 황금기로서 그는 최초의 성공적인 Neuro-Computer를 개발하고 이를 패턴 인식 분야에 적용함. 그러나 Single layer perceptron은 선형적으로 분리가 가능한 패턴은 인식할 수 있지만, 복잡한 패턴은 2개 혹은 그 이상의 layer를 갖는 신경망에서 가능하다는 것이 1969년 Minsky에 의해 증명됨

오늘날 perceptron은 한 쪽 혹은 다른 부분의 결정을 위한 binary classifier에 대한 지도 학습 알고리즘의 개념으로 사용됨

또한 Minsky교수는 perceptron으로는 XOR을 학습할 수 없다는 XOR problem을 밝히고 결국 이것은 신경망에 대한 관심이 멀어지게 만드는 계기가 됨

 

 

 

[신경망과 Perceptron]

 

 

2. 1970~80년

1960년대의 연구는 주로 다양한 문제 해결에 적용될수 있는 범용 방법을 찾아보는 것에 집중하였으나, 규모가 큰 문제에 대한 적용이 어려운 점이 나타났고 1970년대에 이러한 범용 방법보다 특정 영역 문제를 효과적으로 해결하는 방법이 발달. 특정 영역문제에 대해 전문가 수준의 해답을 제공하는 전문가 시스템(Expert System)이 그 대표적인 사례. 당시 개발된 대표적인 전문가 시스템으로 미국 스탠포드 대학에서 개발한 "MYCIN" : 전염성 혈액 질환 환자를 진단하고 항생제를 처방하는데, 69%의 확률로 적합한 처방을 할 수 있음. 80% 정도의 정확도를 보인 세균 감염 전문의보다는 뒤떨어지지만 일반 의사들보다는 높은 확률이 나타남..

긴 침묵기로서 연구비 지원이 줄고 관심이 줄어들어 개별적으로 신경망에 대한 연구가 지속되며 몇몇 혁명적인 연구자에 의해 독자적으로 신경망에 대한패러다임이 발전..

 

3. 1980 중반~90년

신경망은 두뇌 신경세포와 이들의 연결구조를 모방한 계산 모델인데 1958년 페셉트론이 개발되어 큰 관심을 모았지만 아래 그림과 같은 단순한 XOR문제도 해결할 수 없다는 것이 알려지면서 신경망 연구는 한동안 침체기를 맞는다. 퍼셉트론을 여러층으로 연결하여 구성한 다층 퍼셉트론(multi-layer Perceptron, MLP)이 XOR 문제를 해결할 수 있다는 사실을 알았지만, 1980년대 초반까지 이러한 다층 퍼셉트론을 학습시키는 방법이 없었다. 그러다 1980년대 중반에 다층 퍼셉트론을 학습시키는 에러 역전파(Error backpropagation) 알고리즘이 알려지면서, 1980년대 중반부터 신경망 연구의 부흥기를 맞음. 신경망은 데이터만 주어지면 학습할수 있다는 점에서 많은 관심을 일으켰고 다양한 분야에 적용이 시도됨

※ 1986년 Rumelhart와 Hinton에 의해 back-propagation 알고리즘을 발표

 

4. 1990년대

그래프 이론과 확률론을 결합한 여러 확률 그래프 모델(probabilistic graphical model)이 본격적으로 발전하였고, 컴퓨터 비전, 로보틱스, 자연어처리, 진단 분야 등에서 중요한 기술로 자리잡기 시작. 1990년대 이후 지식을 기호로 표현하여 지능을 구현하는 기호적 인공지능(symbolic AI) 기술보다 수치계산 위주의 비기호적 인공지능(subsymbolic AI) 기술이 점차 발전. 1990년 후반에는 기계학습 모델의 하나인 서포트 벡터 머신(Support Vector Machine, SVM)이 개발되어 많은 관심을 모음

※ 1995년 LeCun과 Bengio는 CNN(Convolutional Neural Network)을 발표.

 

 

5. 2000년대 이후

위임받은 일을 자율적으로 처리하는 에이전트(agent) 기술에 관한 연구가 활발히 진행되면서 인터넷 기반의 다양한 서비스가 시도됨. 웹상의 자원(웹페이지, 파일, 서비스, 데이터)에 대한 정보와 자원 사이의 관계 등을 메타데이터로 추가해 두어서 컴퓨터가 웹상의 자원을 이해하여 필요한 서비스를 지능적으로 제공할 수 있도록 하는 시맨틱웹(semantic web)에 관한 연구가 진행.

기계학습과 통계학적 기법을 대규모 데이터에 적용하여 의미 있는 유용한 은닉 정보를 추출하는 데이터 마이닝기술이 발전하고, 여러 가지 데이터 마이닝 도구가 개발되고 있다. 이러한 도구들 덕분에, 알고리즘을 구현 할 수 없는 일반인들도 데이터 마이닝 기술을 쉽게 활용할 수 있게 됨.

한편, 빅데이터의 출현과 함께 이를 처리할 수 있는 인공지능 기술에 관한 연구가 2000년대 후반부터 활발히 진행됨.

SVM에 의해 신경망에 관한 연구가 다소 줄었으나 딥러닝(Deep Learning) 기술이 우수한 적용 사례를 만들어가면서 2000년대 후반부터 신경망이 다시 큰 관심을 모음. 애플Siri, 구글Now와 같은 스마트폰의 음성인식 서비스의 대중화, 구글의 자율주행 자동차와 자동번역기, IBM의 왓슨(Wstson), 군사용 로봇 빅독(Big Dog)을 비롯한 지능로봇 등 눈에 띄는 인공지능 기술을 적용한 제품과 서비스들이 출현함. 지능뿐만 아니라 감정을 이해하는 기술을 통한 서비스 기술(emotion computing)에 관한 연구도 활발히 진행. 2014년 6월 유진구츠만(Eugene Goostman)이란 챗봇(chatboot, 대화하는 소프트웨어 로봇)이 인류역사상 최초로 튜링테스틀를 통과.

 

※ 유진 구츠만은 러시아 출신 베셀로프와 울라센, 우크라이나 출신 템첸코가 2001년부터 개발해온 13세인 우크라이나 소년 캐릭터를 갖는 챗봇. 튜링사망 60주년을 기념하여 진행한 이벤트에서 30명의 검사지가 이 챗봇과 5분간 대화를 하여 33%가 사람으로 판정함. 통과기준을 30%로 설정한것은 문제로 지적됨. 튜링테스트 대회인 뢰브너 상이라는 행사는 1990년 이후 매년 개최됨

 

 

'2. 인공지능 > 2-2. 역사' 카테고리의 다른 글

2-2-2. 주요 응용분야  (0) 2018.01.07

+ Recent posts