728x90

분류 전체보기 129

[수치해석] 신경망 모델

신경망 모델의 필요성에 대해 언급하고 그 예시를 들어 같이 설명을 하겠습니다. 이 그래프를 보았을 때, 바로 방정식을 작성할 수 있을까요? 아마 수학을 많이 공부하신 분이라면 3차방정식이라 생각할 것입니다. 물론 이렇게 단순한 그래프라면 사람이 눈으로 보고 찾을 수도 있습니다. 하지만 우리가 사용하는 데이터는 항상 평면에만 있는 것이 아닌, 다차원의 공간 상에 있게 됩니다. 그럴 때는 직접 찾는 것이 아니라 컴퓨터의 힘을 빌려 알아내야 합니다. #특성값과 레이블 features1 = np.array([[xval] for xval in x_train]) features2 = np.array([[xval**2, xval] for xval in x_train]) features3 = np.array([[xva..

[수치해석] Tensorflow 이용 기본 모델 학습

이번에는 python에 있는 Tensorflow를 이용하여 딥러닝의 기본 모델 학습을 해볼 것이다. 텐서플로로 표현한 선형회귀 모델 class MyModel(tf.keras.Model): def __init__(self, **kwargs): super().__init__(**kwargs) self.w = tf.Variable(tf.ones([1,1])) #기울기 self.b = tf.Variable(tf.ones([1])) #y절편 def call(self,x): #x:데이터 x좌표 return tf.matmul(x,self.w) + self.b #모델 선언 및 최적화 방법 결정 #예측 모델 설정 model = MyModel() #수치최적화 알고리즘 설정 MaxEpoch = 25 lr = 0.25 opt..

[수치해석] 수치최적화 알고리즘2 (Adagrad, RMSProp, Adam)

이 전에는 탐색 방향 기반 알고리즘에 대해 언급하였다. 탐색 방향 기반 알고리즘은 앞서 공부했다시피 학습률이 고정되어있으며, 스칼라 학습률에 의한 한계가 있다. 이러한 학습률 고정에 의한 한계를 극복하기 위해 1) 큰 학습률로 시작 2) 최적화 알고리즘을 통해 새로운 파라미터 추정치를 계산하고 이 추정치를 이용하여 손실함숫값을 계산 3) 새로운 추정치에 대한 손실함숫값이 기존의 손실함숫값보다 작다면 파라미터 추정치를 업데이트 4) 새로운 추정치에 대한 손실함숫값이 기존의 손실함숫값다 크면 업데이트를 하지 않고, 학습률의 크기를 절반으로 줄인 후 기존 파라미터 값을 이용하여 다시 계산을 수행 스칼라 학습률에 의한 한계를 극복하기 위해 단순히 미리 정한 상수 학습률을 곱하는 경우 ≫ 탐색 방향에서 각 방향마..

[수치해석] 수치최적화 알고리즘(SGD, Momentum)

1. 스토캐스틱 그래디언트 디센트 (Stochastic Gradient Descent) 방법 ㉮ 초깃값 설정 ㉯ 전체 데이터를 임의로 섞어줍니다. ㉰ 전체 데이터에서 개수가 m개인 부분집합(배치, batch) 들을 만듭니다. ㉱ 각 부분집합마다 다음을 반복합니다. - 부분집합으로 그래디언트를 계산합니다. - 계산한 그래디언트의 반대 방향을 탐색 방향으로 설정합니다. - 주어진 학습률을 그대로 사용합니다. - 파라미터 추정치를 업데이트합니다. ㉲ 만들어진 부분집합 (=batch) 을 모두 사용한 후 다시 ㉱를 Epoch번 반복합니다. #SGD batch_size = 5 Ir = 0.1 #학습률 MaxEpochs = 10 #반복횟수 paths =[] batch_loss =[] #1)초깃값 w0 = np.ar..

[python] 3D 그래프

3D Axes 만들기 3D 그래프를 만들려면 3D 렌더링 기능을 가진 서브플롯을 작성할 필요가 있다. 다음과 같이 projection="3d"로 3D 렌더링 기능을 가진 서브플롯을 작성할 수 있다. matplotlib.fiture().add_subplot(1,1,1,projection="3d") Example1. import numpy as np import matplotlib.pyplot as plt #3d 렌더링에 필요한 라이브러리입니다. from mpl_toolkits.mplot3d import Axes3D %matplotlib inline t = np.linspace(-2*np.pi,2*np.pi) X,Y = np.meshgrid(t,t) R = np.sqrt(X**2 + Y**2) Z = np...

[python] 데이터 시각화_matplotlib

데이터 분석에 있어서 데이터 시각화는 매우 효과적인 수단입니다. matplotlib 라이브러리에는 데이터를 시각화하는 많은 기능이 들어 있습니다. 'matplotlib.pyplot.plot(x축에 대응하는 데이터, y축에 대응하는 데이터)'를 이용하면 그래프의 x축과 y축에 데이터를 간단히 대응시켜 차트를 만들 수 있습니다. Example. - 3x2의 그래프 레이아웃을 만들어 상단에는 왼쪽부터 순서대로 𝑦=𝑥, 𝑦=𝑥^2, 𝑦=𝑥^3 의 그래프를, 하단에는 왼쪽부터 순서대로 𝑦=𝑠𝑖𝑛(𝑥), 𝑦=𝑐𝑜𝑠(𝑥), 𝑦=𝑡𝑎𝑛(𝑥) 의 그래프를 플롯하세요. - 각각의 서브플롯에 적절한 제목을 붙이고, 그리드를 표시하세요. - 상단에는 _upper가 붙은 변수를, 하단에는 _lower가 붙은 변수를 사용하세요...

[python]Pandas

Pandas 개요 Pandas 에는 Series 와 DataFrame의 두가지 데이터 구조가 존재한다. 주로 사용되는 데이터 구조는 2차원 구조인 DataFrame 이다. 데이터 참조 DataFrame의 데이터는 행과 열을 지정해서 참조할 수 있다. 여러가지 참조방법이 있지만 행에 대하여 추출할 때는 loc, 열에 대하여 추출할 때는 iloc를 자주 이용한다. import pandas as pd data = {"fruits" : ["apple", "orange", "banana","strawberry", "kiwifruit"], "year" : [2001,2002,2001,2008,2006], "time" : [1,4,5,6,3]} df = pd.DataFrame(data) print(df) ------..

[python]Numpy

파이썬이 머신러닝 분야에서 널리 활용되는 이유 : Numpy 등 과학 기술 계산에 편리한 라이브러리가 충실하기 때문 머신러닝 - scikit-learn, Tensorflow 계산/시각화 - pandas, SciPy, matplotlib 벡터/행렬 계산에 특화 - numpy 프로그래밍 언어 - python Example. #난수로 지정한 크기의 이미지를 생성하는 함수 make_image()를 완성하시오. #전달된 행렬의 일부분을 난수로 변경하는 함수 change_matrix()를 완성하시오. #생성된 image1과 image2의 각 요소의 차이의 절댓값을 계산하여 image3에 대입하세요. import numpy as np #난수를 초기화 합니다. np.random.seed(0) #가로세로 크기를 전달하면..

[python]Class

객체 지향(용어 및 구체적인 이미지) 용어 구체적인 이미지 클래스(정의) 자동차 설계도 생성자(함수) 자동차 공장 멤버(변수) 휘발유의 양, 현재속도 등 메서드(함수) 브레이크, 엑셀, 핸들 등 인스턴스(실체) 공장에서 만들어진 실제 자동차 1. 생성자( constructor ) : 클래스를 만들 때 자동으로 호출되는 특수 함수. → 파이썬에서 생성자의 이름은 반드시 __init__(self) 2. 메서드( method ) : 클래스가 갖는 처리, 즉 함수. 3. 멤버( member ) : 클래스가 가지는 값, 즉 변수. → private / public 으로 나뉜다. Example. class MyProduct: def __init__(self, name, price, stock): self.name ..

728x90
반응형