• 검색 결과가 없습니다.

K-ICT 딥러닝 개요

N/A
N/A
Protected

Academic year: 2022

Share "K-ICT 딥러닝 개요"

Copied!
124
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

K-ICT 딥러닝 개요

㈜ 아이덴티파이 송준이

(2)

수업목표

머신러닝 개요

머신러닝 기본 개념 이해 - 머신 러닝이란

- 머신 러닝의 종류

- 지도 학습(Supervised Learning)

- 회귀(regression) - 분류(classification)

- 비지도 학습(Unsupervised Learning)

- 클러스터링(clustering)

1

딥러닝 개요

신경망 및 딥러닝 절차 이해 - 신경망(Neural Network)이란 - MLP(Multi Layer Perceptron) 소개

- 노드와 레이어

- 활성화 함수(Activation Function)

- 딥러닝 절차

- 피드 포워드(Feed Forward) - 경사 감소법(Gradient Descent)

- 학습 최적화를 위한 옵티마이저(Optimizer) - 역전파(Back Propagation)

- 경사 감소 소멸과 ReLU

- 과적합(Overfitting)과 일반화(Generalization)

2

(3)

수업목표

딥러닝 프레임워크 소개

딥러닝 프레임워크의 종류 및 장단점 비교 - 딥러닝 프레임워크의 종류

- theano, caffe, Deeplearning4J, torch, Keras, Chainer, MxNet, TensorFlow, CNTK

- 프로그래밍 언어 및 주요 속성에 따른 딥러닝 프 레임워크 선택 방법

- 주요 딥러닝 프레임워크의 비교

- caffe - torch - keras - Tensorflow

3

CNN(Convolution Neural Network) 개요

이미지 학습을 위한 개념 이해 - CNN 기본 개념 이해

- 컨볼루션(Convolution) 함수 - 풀링(Pooling) 함수

- CNN 피드 포워드 내부 과정 이해

- 컨볼루션 함수 - 풀링 함수 - 활성화 함수

4

(4)

수업목표

실습하기

MLP와 CNN으로 MNIST 딥러닝 실습 따라하기 - MNIST를 MLP로 학습하기

- Torch - Tensorflow

- 출력 함수(Output Function)

- 크로스 엔트로피(Cross Entropy)와 소프트맥스(SoftMax) 함수

- MNIST를 CNN으로 학습하기

- Torch - Tensorflow

5

최신 알고리즘 소개

강화학습과 GAN 소개 - 강화학습 소개

- GAN(Generative Adversarial) 소개

6

(5)

머신러닝 개요

(6)

• 인공지능 머신러닝 딥러닝

• 머신러닝은 인공지능의 일부

• 딥러닝은 머신러닝의 일부

머신러닝이란

(7)

• 머신러닝

• “데이터” 에서 “정보”를 발견하는 방법

• 이때 사람의 개입 없이 머신 스스로 학습

• 데이터: 학습 데이터(training data)

• 정보: 학습 결과, 모델(model)

• 예) 머신러닝의 예

• 스팸 메일 분류

• 주가 예측

• 마케팅 대상 고객 그룹화

머신러닝이란

학습 데이터 머신러닝 모델

그림. 머신러닝이란

(8)

• 센서 데이터 분류

• 2개의 센서데이터와 장비의 고장 유무 판별

• 입력 변수

• x1: 첫 번째 센서에서 수집된 값

• x2: 두 번째 센서에서 수집된 값

• y: 장치의 오작동 여부

• 과거 데이터 수집

머신러닝 문제

𝒙𝟏

𝒙𝟐

그림. 2개의 센서 데이터와 장비 고장 유무

(9)

• 센서 데이터 분류

• 새로운 센서 데이터가 수집된 경우, 장치의 오작동 여부 예측

머신러닝 문제

분류 문제

• 2개의 데이터를 가장 잘 구별하는 선형 판별식을 찾는 과정

𝑤1𝑥1 + 𝑤2𝑥2 = 𝑏

(10)

• 센서 데이터 분류

• 아래의 두 판별식은 관측된 데이터셋을 만족함

• 또는 아래와 같이 기술 가능

• 학습(learning)

• 데이터셋을 정확하게 설명하는 판별식을 찾는 과정

머신러닝 문제

𝑖𝑓 (17𝑥1 − 29𝑥2 + 3) > 0 𝑡ℎ𝑒𝑛 𝑇𝑟𝑢𝑒 𝑒𝑙𝑠𝑒 𝐹𝑎𝑙𝑠𝑒 𝑖𝑓 (13𝑥1 − 27𝑥2 + 2) > 0 𝑡ℎ𝑒𝑛 𝑇𝑟𝑢𝑒 𝑒𝑙𝑠𝑒 𝐹𝑎𝑙𝑠𝑒

𝑖𝑓 (17𝑥1 − 29𝑥2) > −3 𝑡ℎ𝑒𝑛 𝑇𝑟𝑢𝑒 𝑒𝑙𝑠𝑒 𝐹𝑎𝑙𝑠𝑒 𝑖𝑓 (13𝑥1 − 27𝑥2) > −2 𝑡ℎ𝑒𝑛 𝑇𝑟𝑢𝑒 𝑒𝑙𝑠𝑒 𝐹𝑎𝑙𝑠𝑒

{ 17, −29 , 3}

{ 13, −27 , 2}

가중치(weight)

바이어스(bias)

임계값(threshold)

(11)

• 파라미터 학습

• 에폭(epoch)

• 모든 학습 데이터를 신경망을 통과시켜서 예상 출력값 z를 계산

• 예상 출력값 z와 실제 출력값 y사이의 오차 E를 계산

• 오차 E를 이용하여 파라미터를 갱신

• 손실 함수(loss function)

• 모델의 예측값과 실제 출력값 사이의 오차

• 파라미터 업데이트와 학습률

• 학습률: 가중치를 업데이트하는 정도를 결정하는 계수(0~1)

• 너무 작으면 학습 시간이 오래 걸림

• 너무 크면 파라미터가 수렴 되지 않음

머신러닝 문제

𝐸 𝑤1, 𝑤2, 𝑏 = 𝑧 − 𝑦 = (𝑤1𝑥1 + 𝑤2𝑥2 + 𝑏 − 𝑦)

𝜀

단순하게 생각하면,

손실 함수(에러)가 0보다 크다

 W 값이 크다

 W 값을 줄인다

손실 함수(에러)가 0보다 작다

 W 값이 작다

 W 값을 키운다`

(12)

• IRIS 꽃 분류

• 입력 변수

• 꽃받침 길이(sepal length)

• 꽃받침 너비(sepal width)

• 꽃잎 길이(petal length)

• 꽃잎 너비(petal width)

• 출력 변수

• IRIS의 세 품종

• 세토사(Setosa)

• 버시컬러(Versicolour)

• 버지니카(Virginica)

머신러닝 문제

특성(feature) 레이블(label)

(13)

• MNIST 필기체 분류

• 문제

• 사람이 필기체로 작성한 0부터 9까지의 숫자 이미지에 대해 적힌 숫자 값을 식별하기

• 학습 데이터

• 입력값: 0부터 9까지 필기체로 작성된 숫자 아미지

• 레이블: 이미지에 적힌 실제 숫자 값

• 질문) 이미지와 같은 바이너리 데이터에서 특성(feature)은?

머신러닝 문제

그림. MNIST 필기체 이미지

(14)

머신러닝 유형

기계학습 (Machine Learnig) 지도학습

(Supervised Learning)

비지도학습

(Unsupervised Learning)

강화학습

(Reinforcement Learning)

• 레이블된 데이터로 학습

• 미래 데이터 예측

• y = f(x)

• 레이블 없이 학습

• 데이터의 숨겨진 구조/특징 발견

• x ~ p(x), x = f(x)

• 보상 시스템으로 학습

• 의사결정을 위한 최적의 액션 선택

• 머신러닝 알고리즘

분류

(classification)

회귀 (regression)

클러스터링 (clustering)

(15)

• 학습(training) vs. 추론(Prediction/Inference)

• 학습: 훈련 데이터를 이용하여 모델을 학습하는 과정

• 추론: 학습된 모델을 이용하여 미래의 새로운 데이터를 추론/예측하는 과정

머신러닝 단계

훈련 단계

독립변수 Feature 추출

학습된 모델

그림. 머신러닝 프로세스 레이블

Features

머신러닝 알고리즘

독립변수 Feature 추출 Features 레이블

(예측)

추론 단계

(16)

과적합(overfitting)

• 머신러닝의 목적

• 미래의 새로운 데이터를 더 정확하게 예측/추론하기 위함

• 모델의 일반화(generalization) 성능을 향상하기 위함

• 예를 들어 아래와 같은 데이터셋이 있는 경우

• 아래의 판별식으로 분리 가능

과적합(overfitting)

• 학습 데이터셋을 지나치게 정확하게 구분하도록 학습하여 모델의 일반화 성능이 떻어지게 되는 문제

(17)

ai dentify

과적합(overfitting)

• 과적합 발생 원인

• 학습 데이터셋 문제

• 학습 데이터셋이 너무 적은 경우

• 학습 데이터셋 전체 데이터셋의 특성/분포를 반영하지 않는 경우

 전체 데이터셋의 특성/분포를 잘 반영한 충분한 학습 데이터셋을 확보

• 복잡한 모델 vs. 단순한 모델

• 모델이 복잡할 수록 과적합이 발생할 확률이 높음

 파라미터 규제화(regularization)

“같은 현상을 설명하는 두 개의 주장이 있다면 간단한 쪽을 선택하라”

(18)

과적합(overfitting)

• 테스트 단계 추가

• 과적합

• 학습 데이터셋에 대해 모델의 파라미터가 과도하게 학습

• 미래 데이터셋에 대해서 예측/추론의 정확도, 모델의 일반화 성능이 낮아지는 현상

• 학습 데이터셋을 훈련 데이터셋과 테스트 데이터셋으로 분리

• 모델 훈련과정에는 훈련 데이터셋을 사용

• 훈련이 끝난 모델에 대해, 테스트 데이터셋으로 모델을 검증하여 과적합 여부를 검토

훈련 단계

독립변수 Feature 추출 레이블

Features

머신러닝 알고리즘

테스트 단계

80% 훈련

오차

(19)

• 테스트 단계 추가

• 과적합이 발생한 경우 훈련 오차는 낮아지더라도, 테스트 오차는 커진다

과적합(overfitting)

그림, 훈련 오차 vs. 테스트 오차

http://www.slideshare.net/microsoftventures/microsoft-ventures-workshop

훈련 정확도 vs. 테스트 정확도

차이가 큰 경우(파란색)

과적합이 발생

https://cs231n.github.io/neural-networks-3/

(20)

딥러닝 개요

(21)

• 뉴런

신경망이란

인간의 뉴런(neuron)

시냅스(synapse)를 통해 뉴런간 신호를 전달

각 뉴런은 수상돌기(dendrite)를 통해 입력 신호를 받음

입력 신호가 특정 크기(threshold) 이상인 경우에만 활성화 되어 축삭돌기(axon)을 통해 다음 뉴런으로 전달

인공 뉴런: 노드(node)

각 노드는 가중치(weight)가 있는 입력 신호를 받음

입력신호는 모두 더한 후, 활성화 함수(activation function)을 적용함

활성화 함수의 같이 특정 값 이상인 경우에만, 다음 노드의 입력값으로 전달

(22)

• 퍼셉트론(Perceptron)

• 가장 간단한 형태의 인공 신경망

• 손실함수 계산

신경망이란

𝐸 𝑤1, 𝑤2, 𝑏 = 𝑧 − 𝑦 = (𝑤1𝑥1 + 𝑤2𝑥2 + 𝑏 − 𝑦)

(23)

• 활성화 함수(activation function)

• 생물학적 뉴런(neuron)에서 입력 신호가 일정 크기 이상일 때만 신호를 전달하는 메커니 즘을 모방한 함수

• 시그모이드(sigmoid)

• tanh

• ReLU(Rectified Linear Unit)

신경망이란

그림. 활성화 함수 비교

(http://adilmoujahid.com/posts/2016/06/introduction-deep-learning-python-caffe/)

(24)

• 멀티 레이어 퍼셉트론(MLP: Multi Layer Perceptron)

• 여러 개의 노드와 여러 개의 레이어로 구성된 신경망

신경망이란

(25)

• 멀티 레이어 퍼셉트론(MLP: Multi Layer Perceptron)

• 입력층(input layer)

• 입력 값으로 구성된 레이어

• 학습 데이터셋의 “입력 변수의 개수 노드 + 1”만큼의 노드로 구성

• 0번째 원소는 바이어스(bias)로 값은 항상 1을 할당

• 예) IRIS 품종 분류 문제

• 입력층의 노드: 꽃받침 길이(sepal length), 꽃받침 너비(sepal width), 꽃잎 길이(petal length), 꽃잎 너비 (petal width) 총 4개

• 출력층(output layer)

• 모델의 출력값을 만들어 내는 레이어

• 예) IRIS 품종 분류 문제

• 멀티 클래스 분류 문제의 경우 소프트맥스(softmax) 함수를 출력함수로 사용

• 은닉층(hidden layer)

• 입력층과 출력층 사이의 레이어

• 뉴런(neuron)과 시냅스(synapse)로 구성된 인간의 두뇌를 모방하는 레이어

• 은닉층으로 들어오는 입력값의 합을 계산한 후 활성화 함수를 적용

• 활성화 함수 출력이 임계치를 넘지 않을 경우 다음 노드로 0을 전달(신호를 전달하지 않음)

• 은닉층의 개수와 은닉 노드 개수

• 너무 적으면 입력 데이터를 제대로 표현하지 못해 모델을 제대로 학습하지 못함

• 너무 많으면 과적합(overfitting)이 발생하며, 학습 시간도 많이 소모

신경망이란

(26)

• 멀티 레이어 퍼셉트론(MLP: Multi Layer Perceptron)

• 계산 과정

• 행렬로 표현

신경망이란

일반화 하면

(27)

• 멀티 레이어 퍼셉트론(MLP: Multi Layer Perceptron)

• 손실 함수: 평균 제곱 오차(MSE: Mean Squared Error)

• 학습

• 주어진 데이터셋에 대해 손실 함수 E(w)가 최소가 되는 파라미터 W를 찾는 작업

• 질문1) 언제 E(w)가 최소가 되는가

 여러 에폭(epoch)을 통한 반복 학습

• 질문2) 어떻게 E(w)가 최소가 되는 w를 찾을 수 있는가

신경망이란

𝑧(𝑥𝑛; 𝑤)

𝐸 𝑊 = 1

2 ||𝑑𝑛 − 𝑧(𝑥𝑛; 𝑤)||2

𝑁

𝑛=1

모델 예측값 실제 값

(28)

• 머신러닝 vs. 딥러닝

딥러닝이란

머신러닝 훈련 과정

독립변수 Feature 추출 레이블

Features

머신러닝 알고리즘

딥러닝 훈련 과정

독립변수

레이블 딥러닝

알고리즘

(29)

• 딥러닝 학습 절차

딥러닝이란

데이터 로드

네트워크 정의

훈련하기

평가하기

훈련 데이터셋 (입력, 레이블)

평가 데이터셋 (입력, 레이블)

손실 함수

네트워크 모델

파라미터 업데이트 손실

feed forward

back propagation

모델의 출력값 y_와 실제 레이블 y간의 차이 계산

훈련된 네트워크 모델

평가 정확도

(30)

• 피드 포워드(Feed Forward)

딥러닝이란

(31)

• 경사 감소법(Gradient Descent)

• 학습

• 주어진 데이터셋에 대해 손실 함수 E(w)가 최소가 되는 파라미터 W를 찾는 작업

• y축의 손실 함수 E(w)가 최소가 되는 지점을 찾으려면

• 현재 지점의 w에서 기울기가 가장 가파르게 하강하는 곳을 따라 조금씩 이동

• 현재 지점의 w에서 E(w)의 w에 대한 음의 미분값이 가장 높은 방향으로 w를 조금씩 이동

딥러닝이란

그림. 힐 클라이밍(hill climbing)

http://ucanalytics.com/blogs/intuitive-machine-learning-gradient-descent-simplified/

E(w)

w

(32)

• 경사 감소법(Gradient Descent)

• 그래디언트(gradient)

• 다차원 독립변수 w에 대한 손실 함수 E(w)의 미분

• 경사 감소법

• (t+1)번째 에폭의 파라미터는 (t)번째 파라미터에 대해 손실함수의 음의 그래디언트 방향, 즉 가 장 가파르게 하강하는 방향으로 학습률만큼 이동시킨 값

• 경사 감소법이란 에폭이 진행되면서 그래디언트를 사용하여 파라미터를 업데이트하는 방법

• 배치 경사 감소법(Batch Gradient Descent)

• 모든 훈련 데이터셋을 피드포워드 한 후, 그래디언트를 계산하여 파라미터를 한꺼번에 업데이트 하는

딥러닝이란

(33)

딥러닝이란

• 지역 최소값(local minimum) 문제

• 학습 중에 손실함수의 전역 최소값(global minimum)을 찾지 못하고, 지역 최소값에서 빠 져 나오지 못하는 상황

• 파라미터의 초기값에서 그래디언트를 따라 가중치를 업데이트할 때, 손실함수의 지역 최소값 에 빠지는 경우, 에폭이 진행되더라도 손실 함수의 값이 줄어들지 않고 모델이 학습되지 않을 수 있다

그림. 그래디언트를 따라 지역 최소값에 빠진 경우

https://thinkingandcomputing.com/posts/genetic-algorithms-neural-networks.html

(34)

딥러닝이란

• 경사 감소법(Gradient Descent)

• SGD(Stochastic Gradient Descent: 확률적 경사 감소법)

• 입력 데이터셋에서 확률적으로 1개의 입력 데이터만을 사용하여 모델을 학습

• 장점: 전체 데이터셋을 사용하지 않으므로 지역 최소값에 빠지더라도, 확률적으로 선택된 입력 데이 터에 따라 지역 최소값으로부터 탈출할 수 있음

• 단점: CUDA 병렬처리 연산의 장점을 얻을 수 없음

• mini-batch GD(미니 배치 경사 감소법)

• 전체 데이터셋을 m개로 분할한 후, 각 미니 데이터셋을 이용하여 모델을 학습

• 장점

• 저체 데이터셋을 사용하지 않으므로 지역 최소값에 빠지더라도, 선택된 배치 데이터에 따라 지 역 최소값으로부터 탈출할 수 있음

• 미니 배치의 크기만큼 병렬 처리가 가능

(35)

• 옵티마이저(optimizer)

• 파라미터를 업데이트 하는 알고리즘별 학습 속도 비교

딥러닝이란

그림. 다양한 옵티마이저의 학습 속도 (http://cs231n.github.io/neural-networks-3/)

https://machinelearningmastery.com/adam-optimization-algorithm-for-deep-learning/

(36)

• 역전파(Back Propagation)

• 그래디언트를 출력층부터 계산한 후 체인 룰(chain rule)을 이용하여 입력층까지 거꾸로 계산하는 방법

• 계산의 편의성 및 빠른 속도

• 레이어가 깊어지더라도 문제 없음

딥러닝이란

(37)

• 경사 감소 소멸(Vanishing Gradient) 문제

• 레이어가 깊어질 수록 손실함수의 미분값을 backpropagation하면서 그래디언트가 0으로 수렴함

• 파라미터 업데이트되는 정도가 0에 수렴하면서 학습이 진행되지 않게 됨

• 시그모이드 & tanh

• 활성화 함수 정의역의 양 축으로 갈수록 함수의 미분값이 0에 수렴

딥러닝이란

그림. 활성화 함수 비교

(http://adilmoujahid.com/posts/2016/06/introduction-deep-learning-python-caffe/)

(38)

• 경사 감소 소멸(Vanishing Gradient) 문제

• ReLU

• 함수 값이 0보다 큰 경우, 기울기는 상수값을 가짐

딥러닝이란

그림. 활성화 함수 비교

(http://adilmoujahid.com/posts/2016/06/introduction-deep-learning-python-caffe/)

http://www.cs.toronto.edu/~fritz /absps/reluICML.pdf

(39)

• 과적합과 학습률

• 학습률이 낮을 경우(파란색)

• 학습이 선형적으로 진행

• 학습률이 조금 높을 경우(녹색)

• 초반에는 기하급수적으로 손실이 감소하는 것처럼 보이나, 어느정도 지나면 학습이 진행되지 않음

• 학습률이 많이 높을 경우(노란색)

과적합(overfitting)

그림. 손실과 학습률의 관계(왼쪽)와 손실의 추이 https://cs231n.github.io/neural-networks-3/

손실의 변동폭이 큰 경우

미니 배치의 사이즈가 작을 수 있으므로, 미니 배치의 크기를 높인다

(40)

• 드롭아웃(Dropout)

• 과적합을 방지하려면 훈련 데이터셋에 대해 모델을 느슨하게 학습

• 규제화(regularizaton)를 통해 과적합이 발생하지 않도록 완화

• p의 확률로 노드간 연결을 끊고 학습하는 방법

• 노드간 연결 가중치가 높은 링크를 확률적으로 제거하는 기법

• p의 확률로 노드가 제외된 다수의 네트워크를 사용하므로, 여러 네트워크를 통해 학습된 파라 미터의 평균값을 취하게 되는 부수적 효과도 있음

과적합(overfitting)

(41)

딥러닝 프레임워크 개요

(42)

2010 2013 2014 2015 2016 2017

(Nov.) (Dec.)

(Jul.) (Jun.)

On GitHub

(Debut: Apr. ‘2015)

(Oct.) (Jun.)

(Nov.)

(Jan.) (Apr.) (Mar.)

• 시간순으로 본 딥러닝 프레임워크

딥러닝 프레임워크 Timeline

(43)

• 프로그래밍 언어와 딥러닝 프레임워크

• Matlab

• Mathworks사에서 개발한 과학계산용 프로그래밍 언어

• R

• 뉴질랜드 오클랜드 대학교에서 개발한 통계 및 그래프용 프로그래밍 언어

• Python

• 범용 인터프리터형 프로그래밍 언어

• Numpy, Scipy 등 과학계산 및 머신러닝을 위한 패키지가 발전됨

• C/C++

• 범용 컴파일형 프로그래밍 언어

• 오랜 역사를 바탕으로 다방면의 라이브러리 포함

• 기타

• Java

• 엔터프라이즈 시스템 등 안정성이 중요한 시스템 개발에 사용되며 가장 많은 사용자를 확보

• 과학계산용으로는 적합하지 않음

• Lua/Go/Scala

• 최신의 인터프리터형 프로그래밍 언어

• 쉬운 구문이 장점

딥러닝 프레임워크 선택하기

(44)

언어별로 프레임워크 선택하기

도구 선택의 폭이 가장 넓다

(45)

시각화

워크플로우 관리

CG 관리 Multi-dimensional

Array 처리 Numerical computation Computational

[TensorFlow]

Tensor

BLAS

CPU

cuBLAS

GPU

cuDNN

visdom TensorFlow

TF slim

Keras, Lasgane, Blocks, etc

Theano

BLAS

CPU

Numpy libgpuarray CUDA, OpenCL

CUDA Toolkit GPU

Torch

Tensor

BLAS

CPU

cuBLAS

GPU

cuDNN TensorBoard

딥러닝 프레임워크 Sheet

출처: DLIF: Common design of neural network implementations https://www.dropbox.com/s/qfz34ba3ftuli6b/AAAI2017-2-0203.pdf

시각화

워크플로우 관리

CG 관리 Multi-dimensional

Array 처리 Numerical computation Computational

Device

[Caffe]

Caffe

blob

BLAS

CPU

cuBLAS

GPU

cuDNN

(46)

• 주체

• Created by

• James Bergstra, Frederic Bastien, etc.

(http://www.iro.umontreal.ca/~lisa/pointeurs/theano_scipy2010.pdf)

• Maintained by

• LISA lab @ Université de Montréal

• 릴리즈

• Nov ‘2010

• 적용 사례

• Keras

• Lasagne

• Blocks

• Motivation

http://deeplearning.net/software/theano/index.html

Theano

(47)

• 특징

• 장점

• low-level을 제어할 수 있는 API

• 추상화된 그래프 모델 지원

• 빠르고 유연함

• Keras, Lasagne, Blocks 등 Wrapper 프레임워크의 기반 프레임워크

• 단점

• low-level API의 복잡성

주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산

Université de

Montréal

Linux, Mac,

Windows - Python Python Y Y

- Y

http://deeplearning.net/software/theano/index.html

Theano

(48)

• 주체

• Created by

• Yangqing Jia (http://daggerfs.com/)

• UC Berkerey 컴퓨터 과학 Ph.D. / 지도 교수(Trevor Darrell, BAIR 책임자)

• 구글 브레인 TensorFlow 프로젝트 참여

• 페이스북 리서치 사이언티트

• Evan Shellhamer (http://imaginarynumber.net/)

• UC Berkerey 컴퓨터 과학 Ph.D. / 지도 교수(Trevor Darrell, BAIR 책임자)

• Maintained by

• BAIR(Berkeley Artificial Intelligence Research, http://bair.berkeley.edu/)

• 릴리즈

• ‘2013: DeCAF (https://arxiv.org/abs/1310.1531)

• Dec. ‘2013: Caffe v0

• 적용 사례

• Facebook, Adobe, Microsoft, Samsung, Flickr, Tesla, Yelp, Pinterest, etc.

http://caffe.berkeleyvision.org/

Caffe

(49)

ai dentify

• 특징

• 장점

• 이미지 처리에 특화

• 프로그래밍하는 대신 설정 파일로 학습 방법을 정의

• Caffe Model Zoo를 통한 다양한 Pre-trained Model 제공

• 이미지 기반 참조 모델의 de facto standard

• 단점

• 이미지 이외의 텍스트, 사운드 등의 데이터 처리에는 부적합

• 유연하지 못한 API

• 새로운 기능 추가의 경우 C++/CUDA로 직접 구현 필요

• 문서화가 잘 안되어 있음

Caffe2(http://caffe2.ai/) 출시 - By Facebook

- Android 지원, iOS 지원(예정) - 분산 처리 지원

주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산

BAIR Linux, Mac - C++ Python,

MATLAB Y Y

- Y

http://caffe.berkeleyvision.org/

Caffe

(50)

• 주체

• Created & Maintained by

• Ronan Collobert: Research Scientist @ Facebook

• Clément Farabet: Senior Software Engineer @ Twitter

• Koray Kavukcuoglu: Research Scientist @ Google DeepMind

• Soumith Chinatala: Research Engineer @ Facebook

• 릴리즈

• Jul. ‘2014

• 적용 사례

• Facebook, Google, Twitter, Element Inc., etc.

• Motivation

• Unlike Caffe, for research rather than mass market

http://torch.ch/

Torch

(51)

ai dentify

• 특징

• 장점

• 알고리즘 모듈화가 잘 되어 있어 사용이 용이

• 다양한 데이터 전처리 및 시각화 유틸리티 제공

• 기반 언어인 Lua 의 간단한 프로그래밍 구문

• Imperative 프로그래밍 모델 기반의 직관적인 API

• OpenCL 지원

• 모바일 지원

• 단점

• Lua

• 파이썬 인터페이스 없음(PyTorch 별도 존재)

• 문서화가 잘 안되어 있음

• 협소한 사용자 커뮤니티

• 상용 어플레케이션이 아니라 연구용으로 적합

주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산

Ronan, Clément, Koray, Soumith

Linux, Mac, Windows

Android,

iOS C, Lua Lua Y Y

Y Y Not

officially http://torch.ch/

Torch

“Caffe has a pretty different target.

More mass market, for people who want to use deep learning for

applications. Torch and Theano are more tailored towards people who

want to use it for research on DL itself..”

- Torch vs Theano

(http://fastml.com/torch-vs-theano/)

(52)

• 주체

• Created & Maintained by

• Francois Chollet @Google

• 릴리즈

• Mar. ‘2015

• 적용 사례

• TensorFlow (http://www.fast.ai/2017/01/03/keras)

• Motivation

“Using TensorFlow makes me feel like I’m not smart enough to use TensorFlow;

whereas using Keras makes me feel like neural networks are easier than I realized.”

• Provide a high-level interface based on deep learning framework like Theano, TensorFlow

• Easy to use

https://keras.io/

Keras

(53)

• 특징

• 장점

• 직관적인 API 인터페이스

• Caffe, Torch, TensorFlow 등 다양한 딥러닝 프레임워크 모델 import 기능 제공

• 문서화가 잘되어 있음

• 단점

• 기반 Theano 프레임워크에서 문제가 발생시 debugging이 어려움

주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산

François Chollet

Linux, Mac,

Windows - Python Python Y(Theano)

N(TF)

Y - Y

https://keras.io/

Keras

(54)

• 주체

• Created & Maintained by

• Google Brain

• 릴리즈

• Nov. ‘2015

• 적용 사례

• Google

• Search Signals (https://www.bloomberg.com/news/articles/2015-10-26/google-turning-its-lucrative- web-search-over-to-ai-machines)

• Email auto-responder (https://research.googleblog.com/2015/11/computer-respond-to-this- email.html)

• Photo Search (https://techcrunch.com/2015/11/09/google-open-sources-the-machine-learning- tech-behind-google-photos-search-smart-reply-and-more/#.t38yrr8:fUIZ)

• Motivation

https://www.tensorflow.org/

TensorFlow

(55)

ai dentify

• 특징

• 장점

• 추상화된 그래프 모델

• 학습 디버깅을 위한 시각화 도구 TensorBoard 제공

• 모바일 지원

• low-level / high-level API 모두 제공

• 방대한 사용자 커뮤니티

주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산

Google Linux, Mac, Windows

Android, iOS

C++, Python

Python, C/C++,

Java, Go N Y

- Y Y

https://www.tensorflow.org/

TensorFlow

(56)

• 단점

• Define-and-Run 모델 / 런타임에 그래프 변경 안됨 (cf. Chainer)

• Torch에 비해 느림

https://www.tensorflow.org/

TensorFlow

(57)

• 주체

• Created & Maintained by

• Microsoft Research

• 릴리즈

• Jan. ‘2016

• 적용 사례

• Microsoft’s speech recognition engine

• Skype’s Translator

• Motivation

• Efficient performance on distributed environments

https://www.microsoft.com/en-us/research/product/cognitive-toolkit/

CNTK

(58)

• 특징

• 장점

• 처리 성능의 linear scaling

• 단점

• 협소한 사용자 커뮤니티

출처: Microsoft Computational Network Toolkit offers most efficient distributed deep learning computational performance

https://www.microsoft.com/en-us/research/blog/microsoft-computational-network-toolkit-offers-most-efficient-distributed-deep-learning- computational-performance/

[2015. 7]

주체 플랫폼 모바일 언어 인터페이스 OpenMP CUDA OpenCL 멀티GPU 분산

Microsoft Linux,

Windows - C++ Python, C++ Y Y - Y Y

https://www.microsoft.com/en-us/research/product/cognitive-toolkit/

CNTK

(59)

CNN 개요

(60)

CNN 기초

• CNN(Convolution Neural Network)

• 이미지 학습에 특화된 딥러닝 모델

• 컨볼루션(Convolution) 함수를 통한 이미지에 대한 특성지도(feature map)를 추출

(61)

• 컨볼루션의 정의

• 두 함수를 합성하여 만든 새로운 함수로 아래와 같이 정의

• 개념적으로는 두 함수가 서로 볍치는 면적이 컨볼루션 함수의 값

CNN 기초

https://en.wikipedia.org/wiki/Convolution

(62)

• 필터 커널(Filter Kernel)

• 원본 이미지에 특수한 행렬로 컨볼루션을 취함

• 행렬의 특성에 따라 원본 이미지로부터 특성이 강조된 이미지를 얻을 수 있음

CNN 기초

(63)

• Standford CS231n: Convolution Neural Networks for Visual Recognition

컨볼루션

(64)

• Standford CS231n: Convolution Neural Networks for Visual Recognition

풀링

출처: https://cs231n.github.io/convolutional-networks/

(65)

네트워크 정의 – Torch/cnn

(66)

이미지 피드포워드 과정

(67)

이미지 피드포워드 과정

(68)

이미지 피드포워드 과정

(69)

이미지 피드포워드 과정

(70)

실습하기

(71)

• MNIST 필기체 인식 문제

• 가장 잘 알려진 이미지 분류(Classification) 문제

[머신 러닝 유형]

실습 문제: MNIST 필기체 인식

기계학습 (Machine Learnig) 지도학습

(Supervised Learning)

비지도학습

(Unsupervised Learning)

강화학습

(Unsupervised Learning)

분류

(Classification)

• 레이블된 데이터로 학습

• 미래 데이터 예측

• y = f(x)

• 레이블 없이 학습

• 데이터의 숨겨진 구조/특징 발견

• x ~ p(x), x = f(x)

• 보상 시스템으로 학습

• 의사결정을 위한 최적의 액션 선택

• 미래 데이터 레이블 분류

예) 이미지 분류, 텍스트 분류, 감성 분류 등

(72)

• MNIST 필기체 분류

• 학습 데이터

• 입력: 0부터 9까지 필기체로 작성된 숫자 아미지

• 출력: 숫자 이미지에 작성된 실제 숫자 값(0 ~ 9)

실습 문제: MNIST 필기체 인식

(73)

• MNIST 필기체 분류

• 학습 절차

실습 문제: MNIST 필기체 인식

데이터 로드

네트워크 정의

훈련하기

평가하기

훈련 데이터셋 (입력, 레이블)

평가 데이터셋 (입력, 레이블)

손실 함수

네트워크 모델

파라미터 업데이트 손실

feed forward

back propagation

모델의 출력값 y_와 실제 레이블 y간의 차이 계산

훈련된 네트워크 모델

평가 정확도

(74)

• MLP(Multi Layer Perceptron): 심층 신경망(Deep Neural Network)

실습 네트워크 모델

(75)

• 컨볼루션 신경망

• Convolution layer

• Pooling layer

• Fully connected layer

[CNN]

(출처: https://github.com/soumith/cvpr2015/blob/master/Deep%20Learning%20with%20Torch.ipynb)

실습 네트워크 모델

(76)

• Torch 설치하기

딥러닝 프레임워크 설치하기

$ git clone https://github.com/torch/distro.git --recursive

$ cd torch/

$ ./install-deps

$ ./install.sh

$ source ~/.bashrc

(77)

• Torch 설치하기

• 관련 패키지 설치하기: luarocks 패키지 관리자 이용

딥러닝 프레임워크 설치하기

$ luarocks list env

$ luarocks install env

$ for NAME in dpnn nn optim qtlua optnet csvigo cutorch cunn fblualib torchx tds;\

do luarocks install $NAME; done

$ sudo apt-get install qt4-qmake libqt4-dev

$ luarocks install qtlua

$ luarocks install qttorch

(78)

• 텐서플로우 설치하기

딥러닝 프레임워크 설치하기

$ sudo apt-get install python-pip python-dev python-virtualenv

$ virtualenv --system-site-packages targetDirectory # for Python 2.7

$ source ~/tensorflow/bin/activate # bash, sh, ksh, or zsh

$ easy_install -U pip

$ pip install --upgrade tensorflow

(79)

• 실습 예제 설치

$ git clone https://github.com/aidentify/deeplearning-course

• 실습 예제 구성

실습 예제

(80)

Torch/basic 예제

(81)

• 훈련 데이터셋 / 평가 데이터셋 로드

데이터 로드 – Torch/basic

(82)

네트워크 정의 – Torch/basic

(83)

네트워크 정의 – Torch/basic

• 손실(loss)

• 데이터셋의 실제 레이블 t와 모델의 출력값 o 사이의 오차

• 각 에폭마다 계산된 손실 값 E를 이용하여 파라미터 W를 업데이트하는 방식으로 반복 훈련을 진행

(84)

네트워크 정의 – Torch/basic

• 크로스 엔트로피(Cross Entropy) 손실 함수

• 정의

• t

• 데이터셋의 실제 레이블, one-hot encoding 포맷

• 예) 레이블이 5인 경우, t = [0, 0, 0, 0, 1, 0, 0, 0, 0, 0]

• o

• 모델의 출력 값(예측값)

• 해석

• 레이블의 인덱스 위치와 동일한 인덱스의 값이 o에서 가장 높은 경우

• ln(o)의 값은 0에 가까워짐 - CrossEntropy 손실 함수의 값이 0에 가까워짐

• 레이블의 인덱스 위치와 동일한 인덱스의 값이 o에서 낮은 경우

(85)

ai dentify

네트워크 정의 – Torch/basic

• 소프트 맥스(SoftMax) 함수

• 정의

• 해석

• 모델의 출력값 점수(score)를 확률로 변환

• 각 레이블의 값을 모두 더하면 값이 1

(86)

네트워크 정의 – Torch/basic

• Torch에서의 Cross Entropy 손실 함수의 구현

(87)

네트워크 정의 – Torch/basic

(88)

네트워크 정의 – Torch/basic

• 동일한 다른 방법

(89)

• 훈련 데이터셋으로 반복 훈련하기

훈련하기 – Torch/basic

(90)

• 평가 데이터셋으로 모델 평가하기

평가하기 – Torch/basic

(91)

TensorFlow/high 예제

(92)

• 훈련 데이터셋 / 평가 데이터셋 로드

• 데이터셋 타입 변환

데이터 로드 – TensorFlow/high

(93)

네트워크 정의 – TensorFlow/high

(94)

• 훈련 데이터셋으로 반복 훈련하기

훈련하기 – TensorFlow/high

(95)

• 평가 데이터셋으로 모델 평가하기

평가하기 – TensorFlow/high

(96)

TensorFlow/TensorBoard 예제

(97)

• 데이터 로드

• 훈련용 / 평가용

• 네트워크 정의

• 모델 정의

• 손실 정의

• 메트릭 summary 정의

• 훈련하기

• 훈련 데이터셋 사용

• 메트릭 summary 파일 저장 및 텐서보드 실행

• 평가하기

• 평가 데이터셋 사용

tf.summary를 이용한 텐서보드 사용

(98)

• 메트릭 summary 정의

네트워크 정의 – TensorFlow/TensorBoard

(99)

• 메트릭 summary 파일 저장

훈련하기 – TensorFlow/TensorBoard

(100)

• 텐서보드 실행

$ tensorboard --logdir=/tmp/deeplearing_course/tensorboard/

• 텐서보드 접속

http://localhost:6006

텐서보드 – TensorFlow/TensorBoard

(101)

CNN 예제

(102)

• 데이터 로드

• 훈련용 / 평가용

• 네트워크 정의

• 모델 정의: CNN 모델 정의

• 손실 정의

• 훈련하기

• 훈련 데이터셋 사용

• optim 패키지 사용

• 평가하기

• 평가 데이터셋 사용

CNN 모델을 이용한 학습

(103)

네트워크 정의 – Torch/cnn

(104)

네트워크 정의 – TensorFlow/CNN

(105)

최신 알고리즘 소개

(106)

강화학습 소개

(107)

강화학습이란

Atari 게임 강화학습

https://www.youtube.com/watch?v=T58HkwX-OuI

Alphago와 이세돌의 바둑 대국

(108)

• 강화학습(Reinforcement Learning)

• 의사결정을 위한 환경과의 상호작용을 통해 목표(Goal) 지향적 학습 방법

• 보상(reward)의 합을 최대화하는 정책(policy), 을 찾는 방법

강화학습이란

기계학습 (Machine Learnig) 지도학습

(Supervised Learning)

비지도학습

(Unsupervised Learning)

강화학습

(Reinforcement Learning)

MC method

• 레이블된 데이터로 학습

• 미래 데이터 예측

• y = f(x)

• 레이블 없이 학습

• 데이터의 숨겨진 구조/특징 발견

• x ~ p(x), x = f(x)

• 보상 시스템으로 학습

• 의사결정을 위한 최적의 액션 선택

𝜋𝑡(𝑎𝑐𝑡𝑖𝑜𝑛|𝑠𝑡𝑎𝑡𝑒)

TD Method

bootstraping non bootstrapping

(109)

에이전트-환경 상호작용

에이전트는 현재 상태에서 최선의 액션을 수행하고, 환경은 액션에 따른 새로운 상태와 보상을 전달한다

에이전트(Agent)

• 학습을 수행하는 주체

• 액션을 수행하는 의사결정 주체

환경(Environment)

• 에이전트 외부에 위치

• 에이전트와 상호작용하는 모든 것

액션(action)

• 에이전트가 환경에 대해 행하는 행위

상태(state)

• 에이전트가 수행할 액션을 결정할 때 필요한 정보

보상(reward)

• 액션의 좋고 나쁨을 결정하는 단일 치 값(a scalar)

• at time step t,

• 에이전트는 현재 상태를 관찰

• 상태에 따른 액션을 수행

• 액션을 수행한 결과로

• 에이전트는 단일 수치 값의 보상을 획득

• 에이전트는 다음 상태를 관찰

• 정책(policy)

• a mapping: states  prob. of selecting each available action

• 현재 상태에서 에이전트가 액션을 선택하는 기준

𝑆𝑡 ∈ 𝑺 (𝑡ℎ𝑒 𝑠𝑒𝑡 𝑜𝑓 𝑎𝑙𝑙 𝑝𝑜𝑠𝑠𝑖𝑏𝑙𝑒 𝑠𝑡𝑎𝑡𝑒𝑠)

𝐴𝑡 ∈ 𝐴(𝑆𝑡) (𝑡ℎ𝑒 𝑠𝑒𝑡 𝑜𝑓 𝑎𝑣𝑎𝑖𝑙𝑎𝑏𝑙𝑒 𝑎𝑐𝑡𝑖𝑜𝑛𝑠 𝑖𝑛 𝑠𝑡𝑎𝑡𝑒 𝑆𝑡)

𝑅𝑡 ∈ 𝑹 𝑆𝑡+1 ∈ 𝑺

e𝑥𝑝𝑒𝑟𝑒𝑛𝑐𝑒(경험) ≡ (𝑆𝑡 , 𝐴𝑡, 𝑅𝑡+1 , 𝑆𝑡+1)

𝜋𝑡(𝑎|𝑠)

(110)

• 보상(reward)의 정의

• at each time step t, the reward is a simple number

• 에이전트의 목표(goal)는 “total amount of reward”를 최대화하는 것

• not immediate reward, but “cumulative reward in the long run”

• 보상을 정의할 때 주의할 점

“The reward signal is your way of communicating to the robot "what you want it to achieve, not how you want it achieved”

• 궁극적으로 달성하려는 목표(goal)에 대한 수치 값이어야 함

• 달성하려는 목표(goal)을 어떻게(how) 달성할지에 대한 사전 정보를 포함해서는 안됨

• 예) 체스 게임의 경우

• 목표(goal): 게임의 승리

• 보상(reward): 게임에 이기는 경우 +1, 비기는 경우 0, 지는 경우 -1

보상(reward)

(111)

• 강화학습의 목표

• to maximize the cumulative reward in the long run

• After the time step t, if the sequence of rewards is

Return

𝑅𝑡+1, 𝑅𝑡+2, 𝑅𝑡+3… 𝑡ℎ𝑒 𝑔𝑜𝑎𝑙 𝑜𝑓 𝑅𝐿

≡ 𝑡𝑜 𝑚𝑎𝑥𝑖𝑚𝑖𝑧𝑒 𝑡ℎ𝑒 𝑡𝑜𝑡𝑎𝑙 𝑎𝑚𝑜𝑢𝑡 𝑜𝑓 𝑟𝑒𝑤𝑎𝑟𝑑

≡ 𝑡𝑜 𝑚𝑎𝑥𝑖𝑚𝑖𝑧𝑒 𝑡ℎ𝑒 𝑐𝑢𝑚𝑢𝑙𝑎𝑡𝑖𝑣𝑒 𝑟𝑒𝑤𝑎𝑟𝑑

≡ 𝑡𝑜 𝑚𝑎𝑥𝑖𝑚𝑖𝑧𝑒 𝒕𝒉𝒆 𝒆𝒙𝒑𝒆𝒄𝒕𝒆𝒅 𝒓𝒆𝒕𝒖𝒓𝒏

≡ 𝑡𝑜 𝑚𝑎𝑥𝑖𝑚𝑖𝑧𝑒 𝑡ℎ𝑒 𝑅𝑡+1 + 𝑅𝑡+2 + 𝑅𝑡+3… + ⋯ + 𝑅𝑇 ≡ 𝐺𝑡

episodic task

- 종료 상태(terminal state) T가 있는 태스크

- 에이전트-환경 사이의 상호작용을 작은 단위로 분할 가능한 태스크 - 예) 게임의 종료, 바둑의 한판, …

continuing task

- 종료 상태가 없는 태스크 또는 T가 무한대인 태스크 - 예) 자동차 주행, 로봇의 보행

(112)

• RL Problem의 특징

• closed-loop problem

• 에이전트의 현재 액션이 다음에 관측할 데이터(보상, 다음 상태)에 영향을 준다

• no supervisors

• “상태 X에서는 A 액션을, 상태 Y에서는 B 액션을 수행해라”와 같은 “how to”에 대한 지시가 없 음(Supervised Learning와 다름)

• 긴 시간에 걸친 보상을 고려

• 시간이 중요

강화학습 특징

(113)

• RL 시스템의 구성요소

• 정책(policy)

• the agent’s way of taking action at a given state of the environment

• mapping from states to actions

• 보상 (reward)

• after taking a action, the environment sends a single number signal to the agent that defines what is good or bad for agent in an immediate sense

• the goal of agent is to maximize the total reward over the long run

• the primary basis for altering the policy

• value function

• defines what is good or bad for agent in the long run

• action should be chosen based on the value not the reward

“We seek actions that bring about states of highest value, not highest reward”

• (optional) 환경에 대한 모델(model)

모델이란?”

강화학습 구성요소

(114)

• 미로 탈출 예제

강화학습 구성요소

보상(reward) : -1 / time step 액션

: N, E, S, W 상태

: 에이전트의 위치

(115)

• DP(Dynamic Programming)

• 모델이 MDP로 정의되고 모델의 dynamics를 완전히 알고 있는 경우 optimal policy를 계산 하기 위한 알고리즘

• Planning method

DP(Dynamic Programming)

강화학습

(Reinforcement Learning)

MC method (Mote Carlo)

• 보상 시스템으로 학습

• 의사결정을 위한 최적의 액션 선택

TD Method

(Temporal Difference)

bootstraping non bootstrapping

MDP

(Markov Decision Process)

Planing

model-based /

simulated experiences

model-free real experiences

Executive Search Dynamic Programming

Q-Learning

off-policy

(116)

• Too many states and Too large Q-table

• 심층 신경망(Deep Neural Network)

• 적은 수의 파라미터(차원)으로 고차원의 데이터를 효과적으로 표현하는 방법

Deep Q-Learning

84

84 # of states = 256(𝑔𝑟𝑎𝑦 𝑠𝑐𝑙𝑎𝑒)84×84×4 𝑓𝑟𝑎𝑚𝑒𝑠 ≈ 1067970

(117)

• DQN(Deep Q-Network)

• 심층 신경망(Deep Neural Network)를 이용하여 Q-table을 표현

• 상태와 액션에 따른 action-value 를 근사

• 상태에 따른 실행 가능한 모든 액션의 action-value 를 근사

Deep Q-Learning

Network

Q 𝑠, 𝑎

State State

Action

Q 𝑠, 𝑎

Network State

State

Q 𝑠, 𝑎1 Q 𝑠, 𝑎

Q 𝑠, 𝑎2

Q 𝑠, 𝑎𝑛

. .

(118)

GAN 소개

(119)

• 비지도 학습으로써의 GAN

GAN(Generative Adversarial Network)

GAN

레이블이 없는 데이터 활용 가능 Ian Goodfellow

(120)

• 구조

• 생성망(Generator)

• 실제 데이터 와 최대한 유사한 를 노이즈 로 부터 생성하도록 학습

GAN(Generative Adversarial Network)

Discriminator

𝑋𝑟𝑒𝑎𝑙 𝑑𝑎𝑡𝑎 𝑋𝑓𝑎𝑘𝑒 𝑑𝑎𝑡𝑎

Generator 1

(data is real)

0

(data is fake)

𝑍 𝑛𝑜𝑖𝑠𝑒

𝑋𝑟𝑒𝑎𝑙 𝑑𝑎𝑡𝑎 𝑋𝑓𝑎𝑘𝑒 𝑑𝑎𝑡𝑎 𝑍

참조

관련 문서

광고 성수기는 4Q 콘텐츠가 미디어 산업 Value Chain의 중심에 있지만, 미디어 산업을 움직이는 동력은

표본의 크기가 일정할 때, 신뢰도가 높아지면 k의 값이 커지므 '¶n 로 신뢰구간의

만일 완전한 섬이 존재하지 않을 경우, 완전한 섬이 실제로 존재하는 경우와 비교할 때, 완전한 섬의 개념은 덜 위대한 존재의 개념이 될 것이다.... 그런 섬이

함수에 사칙 연산과 합성 연산을 적용하는 방법을

n이 커짐에 따라 분포의 모양이 중심에 대하여 대칭인 종 모양으로 되어간다.... 따라서

® 모든 생산요소의 투입량을 각각 λ배 증가시켰을 때 생산량의 증가가 λ배 이상으로 나타나는 경우. ® k>1이면 규모에

 피보험자가 소유하지 않고, 조업하지도 않고, 통제하지 않는 다른 사람의 사업장에서 손실이 발생하여 피보험자 의 사업이 중단될

함수의 극한과 연속...