본문 바로가기

미분

(6)
Cost Function 비용함수와 Gradient Descent 경사하강법의 이해 (feat. tensorflow GradientTape) 2022. 3. 8. 08:00 아마 딥러닝이 되었든 혹은 간단한 선형 회귀 알고리즘만 공부하려고 해도 비용함수라고 하는 Cost Function(loss funciton)이라고 하는 단어를 만났을 겁니다. 특히 그 후 꼭 따라 붙는 Gradient Descent 경사하강법이라는 단어도 만났을 겁니다. 제가 글을 쓰는 습관이 작은 주제를 나눠서 쓰는 것이라서 비용함수와 경사하강법을 다루어야겠다고 생각했는데, 그것 때문에 참 많은 시간을 들였습니다. 어떤 사람들보다 더 잘 설명해야지 하는 생각은 없었지만, 그래도 이왕 쓰는 것이라 좋은 설명을 해야할텐데... 하는 걱정 때문이었습니다ㅠㅠ. 잘 하고 있는 것인지는 잘 모르겠지만, 그래도 일단 준비한 내용으로 글을 시작해보려고 합니다. 이번 글은 Cost Function이라는 아이를 설명하고..
Python에서 미분(차분)을 한다는 것. 데이터, 혹은 함수 2019. 7. 15. 08:00 어떤 형태든 센서 신호를 만지작 거리고, 모터를 구동하고, 뭐 그러다보면 미분(혹은 차분)을 수행해야할 경우가 생깁니다. 오늘은 파이썬으로 미분(차분)하는 일에 대해 이야기를 해보려고 합니다.^^ import numpy as np import matplotlib.pyplot as plt %matplotlib inline t = np.arange(0, 2*np.pi, 0.1) y1 = np.sin(t) plt.figure(figsize=(12,6)) plt.plot(t, y1); 일단, 시험 신호를 하나 만들어 두겠습니다. 시간축 t는 0부터 2pi까지 0.1 간격을 가지도록 했습니다.이렇게 생긴거죠^^ 먼저, 위 시험신호처럼 우리가 함수를 아는 경우에 대해 접근해 보겠습니다.바로 고등학교때 배운 도함수의..
갈릴레오 보드 / 아두이노에서 시간에 대해 미분 적분 수행하기 2015. 4. 9. 07:00 갈릴레오(Galileo Gen2) 보드가 나온지는 꽤 되었는데요. 저는 최근에야 한 번 테스트를 해 보았네요. 갈릴레오에도 어차피 아두이노가 있으니 일반 아두이노 보드 쓰는것과 큰 차이는 없겠지만... Sublime Text를 IDE로 사용하던 저는 현재 STINO[바로가기]가 정상적으로 갈릴레오를 지원하지 않는듯 해서 조금 아쉽네요ㅠㅠ. 뭐 아무튼.. 예전에 아두이노에서 타이머 이벤트를 지원해주는 라이브러리[바로가기]를 소개한 적이 있는데요. 그건 약간 한계가 있더군요. 일단 빠른 시간을 설정하는 것이 좀 힘들고, 결정적으로 PWM과 약간의 문제가 있는듯 했습니다.(이런 얇은 지식이란..ㅠㅠ) 그래서 이번에는 시간을 측정하는 micros()라는 함수를 사용할까하고 한 번 예제를 꾸며보았네요^^ 갈릴레오..
MATLAB에서 다변함수에 대한 문자연산을 이용한 미분 2010. 6. 6. 00:46 예전에 MATLAB에서 문자연산을 이용해서 미분하는 법에 대한 이야기[관련글]를 했었습니다. 그런데 만약 사용할 변수가 어떤 변수(대체로 시간 t)에 대해 종속이면서, 여러 함수를 사용 중 이라면, 문자연산을 이용한 미적분의 적용에 애를 먹게 됩니다. 물론 애초 syms로 선언할 당시 시간에 관한 함수라고 선언하면 되지만, 그렇게 하면 일반적 수식이 아니라 텍스트형태로 나오는 결과가 해당 식이 아주 복잡할 때는 더더욱 알아보기 힘들게 됩니다. 이것을 극복하는 많은 방법이 있습니다만, 간단히 MATLAB이 제공하는 문자치환(subs) 명령어를 이용해서 극복해 보겠습니다. 그리고, 마지막에는 이를 함수(function)로 만들어 두고두고 사용할 수 있도록 한번 해보죠. 간단한 예제를 통해 프로그램의 흐름을 ..
[공업수학] 벡터의 미적분 - 벡터함수 2009. 10. 19. 04:40 본 자료는 국립 창원대학교 메카트로닉스 공학부 학생을 대상으로 한 공업수학 수업 자료입니다. 본 자료는 수업의 교재인 공업수학I 개정3판 (고형준 외, 도서출판 텍스트북스) 의 내용을 재구성한 것으로 수업보조 자료 이외의 목적이 없음을 알립니다. 벡터 함수 위 그림처럼 함수의 출력이 벡터로 나타나는 것을 벡터 함수라고 합니다. 그렇다면 벡터함수는 와 같은 형태를 가질 수 있을 것입니다. 위의 벡터함수를 보죠. 형태가 잘 떠오르질 않을 텐데요. z축 즉, 벡터 k의 방향은 빼고 생각을 하면, 위에서 라는 사실을 발견할 수 있습니다. 원이죠... 반지름이 2인... 이제 z축성분이 있으니까 그것도 시간의 함수로... z축상으로 증가하는 방향으로 원기둥의 표면을 따라 움직이는 원 나선(circular heli..
미분(차분) 및 적분하기 2009. 4. 15. 04:56 MATLAB에서 미분(차분) 및 적분하는 간단한 코드를 소개하겠습니다. 어떤 형태든 계측기를 사용하든지 하면 ADC든 혹은 해당 계측기의 통신방법을 통해 데이터를 받게 됩니다. 이때, 미분-디지털값이 들어오니까 엄밀히 말하면 차분-과 적분을 수행하게 됩니다. 이를 MATLAB에서 간단히 수행해 보겠습니다. 먼저 대상 함수를 만들어야 할테니 간단히 y = sin(omega * t)를 대상으로 하겠습니다. 이때 샘플타임을 10ms로 하죠. ts = 0.01; t=0:ts:10; omega = pi/5; y = sin(omega*t); 이제 미분해 보겠습니다. MATLAB 명령어 " diff " 를 사용할 겁니다. 이는 단순히 앞선값에서 바로 뒤의 값을 빼는 것입니다. 차분을 할려면 그 상태에서 샘플 타임으로..

반응형