분류 전체보기
-
[C 언어 기초 정리 03] if, else, for, while개발 이야기/C 2023. 9. 22. 17:42
C 프로그램은 절차적 프로그램(procedural program) 또는 명령형 프로그램(Imperative program)에 속한다. 즉, C 프로그램의 명령문은 처음부터 끝까지 순서대로 실행됩니다. 이런 명령문들은 모든 프로그래밍 언어에서 거의 공통적인 이름과 역할을 수행하기에 그 문법에 관해서만 간단히 짚고 넘어가려고 한다. 조건문 IF int num = 3; if (num < 5) { printf("입력하신 수는 5보다 작습니다.\n"); } if-else if (조건식) { 조건식의 결과가 참일 때 실행하고자 하는 명령문; } else { 조건식의 결과가 거짓일 때 실행하고자 하는 명령문; } if-else if- if int num = 7; if (num < 5) { printf("입력하신 수는..
-
[C 언어 기초 정리 02] 변수&상수, 타입, 선행처리문개발 이야기/C 2023. 9. 22. 00:09
타입 C언어는 여러 형태의 타입을 미리 작성하여 제공하고 있는데, 크게 정수형, 실수형, 그리고 문자형 타입으로 나눌 수 있다. 타입 할당되는 메모리 크기 예시(코드) 정수형 short 2byte short a = 10 int 4byte int a = 10 long 4byted int a = 1000 실수형 float 4byte float a = 1.12(6자리) double 8byte double a = 1.244(15자리) char 1byte char a = 'a' typecast를 통해서 명시적으로 타입변환이 가능하다. 변수(Variable) 변수(variable)란 데이터(data)를 저장하기 위해 프로그램에 의해 이름을 할당받은 메모리 공간을 의미한다. 변수는 기본적으로 메모리의 주소(addre..
-
[C 언어 기초 정리 01] C 프로그래밍 & 입출력개발 이야기/C 2023. 9. 20. 22:48
사담이다. 사실 c를 배운지는 오래되었지만, 너무 주먹구구식으로 배웠었다. 하지만.. 컴공(소) 전공수업을 들으면서 c로 코드를 짤 일이 매우매우 많아졌고..! 코드 예시도 c가 대다수라 이렇게 급하게 c 프로그래밍의 기초적인 내용들을 작성해본다. 현재 배우고 있는 내용 특성상 포인터와 포인터함수에 관한 내용을 위주로 작성하려고 한다. 아래의 내용들은 http://www.tcpschool.com/c/ 의 내용들과 https://wikidocs.net/book/1411 를 참조해서 작성하였다. Program & Programming Program이란 무엇일까? 프로그램이라는 것은 어떠한 일의 진행계획이나 순서를 말한다고 한다. 프로그램이란 '목적을 위해 작성된 일련의 명령문(어)의 순서나 목록'이라고 할 ..
-
[PyTorchZerotoAll 내용정리] 09: Softmax ClassifierML&DL 이야기/Pytroch 2023. 9. 5. 13:13
06, 07 내용에 이은 Softmax Classifier이다. Logistic Reression은 단일 품목을 labeling하기 위한 방법이었다. 예시를 들면 개인지, 개가 아닌지?를 판단하는 모델을 학습하는 것이었다. 하지만 우리는 때에 따라서 해당 동물의 사진이 개인지, 고양이인지, 토끼인지, 두더쥐인지 다양한 품목, 종류에 대해 판명해야할 때도 많다. 이를 위해 우리는 Soft max 함수가 필요하고, 이러한 문제를 multi-classification problem, 혹은 model이라고 한다. 기존 classification 문제와 달리 그러면 multi-classfication문제이기 때문에 우리가 분류해야하는 n개의 label에 맞게 n차원의 output을 내야할 것이다. 기존의 clas..
-
[PyTorchZerotoAll 내용정리] 08 DataLoader & DatasetML&DL 이야기/Pytroch 2023. 9. 4. 12:23
https://tutorials.pytorch.kr/beginner/basics/data_tutorial.html Dataset과 DataLoader 파이토치(PyTorch) 기본 익히기|| 빠른 시작|| 텐서(Tensor)|| Dataset과 DataLoader|| 변형(Transform)|| 신경망 모델 구성하기|| Autograd|| 최적화(Optimization)|| 모델 저장하고 불러오기 데이터 샘플을 처리하는 코 tutorials.pytorch.kr 이전 영상의 코드에서는 위와 같은 방식으로 data를 불러왔다. 보면 데이터를 pandas를 이용해 읽고, 이후 각 data를 numpy로 변환하였는데 해당 방식보다 효율적인 방식이 파이토치에는 존재한다. Dataset과 DataLoader이다. ..
-
[PyTorchZerotoAll 내용정리] 07 Wide(다변량) & Deep(gradient vanishing problem)ML&DL 이야기/Pytroch 2023. 8. 30. 12:55
Wide 이전 시간(06) logistic regression을 이용해 PHD 합격 여부를 예측하는 모델을 만들었었다. 그러나 실제로 합격, 불합격이라는 결과를 만들기 위해서는 GPA 뿐만 아니라 더 많은 요소들이 고려될 것이다(다변량) 이런 다양한 input을 받아서 output으로 표현하기 위해서는 행렬의 곱셈 연산이 필요하다 즉, 위와 같이 각 input의 data를 column형태로 쌓아 행렬로 만들고, 해당하는 데이터의 수만큼 가중치를 추가하면 된다. 이것이 Wide&Deep에서 Wide이다. 코드로는 아래와 같이 표현 가능할 것이다(n은 input data의 종류의 수) import torch linear = torch.nn.Linear(n,1) y = linear(x_data) Deep De..
-
[PyTorchZerotoAll 내용정리] 06 Logistic(sigmoid) Regression = Linear classificationML&DL 이야기/Pytroch 2023. 8. 27. 13:49
Linear regression의 경우 우리의 예측 값은 실수형태로 떨어졌다. 즉, 연속된 값을 가정하였다. 이번에는 Binary prediction이 필요한 경우, 즉, 카테고리 분류나 O,X 분류가 필요한 경우를 가정해보자. 실생활에서 이와 같은 경우는 위와 같이, 기나 아니냐 라는 케이스가 대다수이다. Classfication = Logistic Regression 0,1로 결과값을 제약하려면 어떤 함수가 필요할까?? 우리는 Sigmoid함수를 이용할 수 있다. 이런 함수를 activation 함수라고도 하는데, 시그모이드 함수는 그 함수의 특성상 0을 기준으로 값이 급격하게 1로 가까워지거나 0으로 가까워지는 특성이 있다. 즉, 과 1 사이의 실수 결과가 나온다면 특정한 임계치를 정하고 그 이상이..
-
[ML] Optimizer란 무엇인가ML&DL 이야기/ML 2023. 8. 24. 23:40
https://tutorials.pytorch.kr/beginner/basics/optimization_tutorial.html 앞선 글에서 처럼 각 반복 단계에서 모델은 출력을 추측하고, 추측과 정답 사이의 오류(손실(loss))를 계산하고, 매개변수에 대한 오류의 도함수(derivative)를 수집한 뒤, 경사하강법을 사용하여 이 파라미터들을 최적화(optimize)합니다(https://www.youtube.com/watch?v=tIeHLnjs5U8) 24.1.23 LG Aimers 이화여자대학교 강제원 교수님의 강의 내용 추가 하이퍼파라미터(Hyperparameter) 하이퍼파라미터는 모델의 최적화 과정에서 우리가 직접 제어할 수 있는, 조절 가능한 매개변수이다. 이를 조절하는 것을 하이퍼파라미터 ..