반응형

전체 글 209

[Deep Learning : 딥러닝] 딥러닝 모델 설계

https://knowledgeforengineers.tistory.com/69?category=946640 에서 봤던 첫 번째 코드를 다시 살펴보자. 딥러닝 입문 - 최소제곱법, 평균제곱오차, 딥러닝의 기본 연산(method of least squares, Mean squared error) 참고도서 : 모두의 딥러닝, 제2판(조태호, 2020) 개발환경 : google colab 데이터를 입력하고 분석하는 과정을 training이라고한다. 텅빈 좌표평면에 data를 하나씩 놓고 이를 분류하는 과정이다. 이 dat knowledgeforengineers.tistory.com 아래 코드는 폐암 수술 환자의 생존율을 예측하는 코드이다. 환자의 dataset을 보면 1 ~ 17번째까지는 분석 대상이고, 그 ..

[Python] 문자열 자료형

문자열 자료형 파이썬에서는 character와 string을 구분하지 않는다. 한줄 문자열 ' ''로 묶는다. x = "abc" y = 'abc' print(x) print(y) 출력 : abc abc 여러줄 문자열도 ' "로 묶는다 x ='''abc def''' y = """abc def""" print(x) print(y) 출력 : abc def abc def 문자열 연산 인덱싱 인덱싱을 통해 k의 위치에서의 값을 구한다 string = "abcdefghi" print(string[0]) print(string[5]) print(string[8]) print(string[-1]) 출력: a f i i 슬라이싱 [s:t:p] s부터 t구간까지 p간격으로 구함 string = "abcdefghi" pri..

[C++] 함수의 값, 참조, 주소 반환 (Returning values by value, reference and address)

값의 반환 Return by value 복사본이 호출자에게 반환된다. 리터럴, 변수, 표현식을 반환할 수 있다. 범위 지정 문제를 걱정할 필요가 없다. 함수가 반환되기 전에 지역 변수가 평가되고, 값의 복사본이 호출자에게 반환된다. 값으로 반환을 사용해야 하는 경우: 함수 내에서 선언된 (지역)변수를 반환할 때 값으로 전달된 매개 변수를 반환할 때 아래 예제를 통해서 복사본이 전달됨을 확인해보자. #include using namespace std; int doubleValue(int x){ int value = x * 2; cout

[C++] Const 총 정리 - 2

Const와 함수 함수에서 Const가 사용되는 위치는 세 군데 매개변수 자료형 함수선언 리턴 자료형 매개변수 자료형에 사용되는 경우 PrintAddress(int &IParam) add(const int a, const int b) 형태와 같이 매개변수의 자료형에 const가 사용된다. 함수의 파라미터를 함수 내에서 변경하면 안되므로 오류를 막기위해 사용한다. 즉, 함수내에서 파라미터를 읽기만 하고 변경을 하는일이 없다는 것이다. 함수에 전달되는 parameter를 in-parameter와 out-parameter 두가지로 구분할 수 있다. in-parameter는 함수가 데이터를 전달받아 사용하는 것을 의미하고 out-parameter는 함수가 데이터를 변경하는 것을 의미한다. 예를 들면 num은 여..

[C++] Const 총 정리 - 1

Pointer와 Const variable const(상수)값은 그 값을 변경할 수 없다. 변경할 수 있는 값은 non-const(비상수)라고 할 수 있겠다. #include void main(){ int value = 5; int* ptr = &value; *ptr = 6; printf("%d\n", *ptr); } 출력 : 6 하지만 value의 값이 상수인 경우에는 어떻게 될까? #include void main(){ const int value = 5; int* ptr = &value; *ptr = 6; printf("%d\n", *ptr); } 출력 : 컴파일 에러 위 코드는 컴파일되지 않는다. 상수 변수는 값을 변경할 수 없다. 만약 상수가 아닌 포인터가 상수 변수를 가리킨 다음에 역참조하여 ..

[C Language] Chap.3 Control Flow - comma `,` 연산자

comma , 연산자 둘 이상의 문장을 한 행에 삽입할 때 사용된다. ,는 시퀀스 포인트를 추가하므로, 여러개의 문장을 하나의 문장으로 쓰되 각 문장을 시퀀스 포인트로 나눠주는 것이라고 생각할 수 있다. 콤마 연산자는 드물게 사용하는 것이 좋다. 그리고 사용시 두 연산자가 연관성이 있는 것이거나, 혹은 여러 단계를 거치는 연산이 한 행에서 행해지도록 하는 것을 목적으로 하는 것이 좋다. 둘 이상의 변수를 동시에 선언하거나, 둘 이상의 인자를 함수로 전달할 때에 사용하는 콤마 ,는 콤마 연산자가 아니다. 이 때의 ,는 왼쪽에서 오른쪽으로의 피연산자 평가를 보장하지 않는다. 왼쪽에서 오른쪽으로 평가되며, 오른쪽 피연산자의 type과 value가 반환된다. #include int main() { int a=1..

[C Language] Chap.3 Control Flow - Goto와 Label

Goto와 Label 보통 C언어를 배우면 goto를 사용하지 말라고 하는데, 사실 goto가 유용한 경우가 한정적으로 존재하기는 한다. 여러겹의 loop로 싸인 곳을 탈출할 때에 특히 유용하다. 이런식이다. for(...) for(...) for(...){ ... if(disaster) goto error; } ... error: do error handling goto를 사용해서 배열간 같은 원소의 존재유무를 찾는 프로그램을 짜면 #include int main(){ int i, j, n, m; int a[] = {1,2,3,4,5,6}; int b[] = {7,8,9,10,11,12,1}; n = sizeof(a)/sizeof(int); m = sizeof(b)/sizeof(int); for(i =..

[C Language] Chap.3 Control Flow - Break, Continue

Break break는 for, while, do, switch등 현재 작동 중인 부분에서 탈출하게 한다. 스페이스나 탭 등의 빈공간을 제거하는 프로그램을 짜보자. #include #include int main(){ char s[] = "Hello World "; int n; for(n = strlen(s) - 1; n >= 0; n--) if(s[n] != ' ' && s[n] != '\t' && s[n] != '\n') break; // 공백문자를 만나면 for 문을 탈출한다. s[n+1] = '\0'; printf("%s", s); return 0; } 출력 Hello World Continue continue는 break처럼 탈출하지는 않고, 해당 loop를 스킵하고 다시 한번 loop로 진입한..

[Deep Learning : 딥러닝] 오차 역전파 기울기 소실, 확률적 경사 하강법(Stochastic Gradient Descent)

오차 역전파 기울기 소실 문제 오차 역전파를 이용하면 입력층에 가까워 질수록 보정해야하는 기울기의 값이 작아질 수밖에 없다. 애초에 기울기가 0이 되는 방향으로 parameter를 조정하기 때문에.또한 활성화 함수로 사용되는 sigmoid함수의 미분 최대값이 0.3인 것도 한 몫한다. 그래서 다른 여러가지 활성화 함수를 도입한다. $tanh(x), log(1+e^x), y=x(x>0)$ 확률적 경사 하강법 Stochastic Gradient Descent SGD 계산량을 줄이고, 과적합이 되는 경우를 방지하기 위해, 랜덤하게 일부 데이터만을 이용해서 경사 하강법을 적용하는 것을 의미한다. 모멘텀 Momentum Momentum SGD는 오차를 수정하기 전, 직전의 수정값의 부호/방향을 참고해서 같은 방향..

공업수학 요점정리 #21 - 선형대수학(Linear Algebra) - Gauss Elimination이 아닌 역행렬 공식

역행렬 공식 이 공식은 시도하기 전에 그 determinant가 0이 아닌 것을 확인하고 해야한다. $n \times n$행렬 $A$가 nonsingular일 때, $B = A^{-1}$이면 $$b_{ij} = \frac{1}{|A|}(-1)^{i+j}M_{ji}$$ EX) $A = \begin{bmatrix} -2 & 4 & 1 \\ 6 & 3 & -3 \\ 2 & 9 & -5 \end{bmatrix}$ 은 $|A|=120$ $b_{11} = \frac{1}{120}(-1)^{1+1}\begin{vmatrix} 3 & -3 \\ 9 & -5 \end{vmatrix}$ ... 이렇게 역행렬의 각 원소를 구해줄 수 있다.

반응형