전체 글
-
#include using namespace std; // 오늘의 주제: 다중 포인터 void SetNumber(int* a) { *a = 1; } /* * 에서 const가 별표 전에 오느냐 뒤에 오느냐에 따라 의미가 다른데 별표 전에 오면 msg 자체는 다른 주소로 교체 가능하되 (msg는 주소를 담는 바구니죠), 실제 그 주소를 타고 가서 있는 데이터 (char)를 바꿀 수 없다는 의미입니다. 반면 const가 별표 뒤에 오면, 포인터 값 자체를 바꿀 수 없게 됩니다. */ void SetMessage(const char* msg) { // msg 매개변수는 스택에 추가로 생성된다. // 즉 main 함수의 msg와는 다른 메모리 공간에 저장된다. // 즉, 값복사가 이루어진것. msg = "Bye..
[언리얼 MMORPG pt1] 다중 포인터#include using namespace std; // 오늘의 주제: 다중 포인터 void SetNumber(int* a) { *a = 1; } /* * 에서 const가 별표 전에 오느냐 뒤에 오느냐에 따라 의미가 다른데 별표 전에 오면 msg 자체는 다른 주소로 교체 가능하되 (msg는 주소를 담는 바구니죠), 실제 그 주소를 타고 가서 있는 데이터 (char)를 바꿀 수 없다는 의미입니다. 반면 const가 별표 뒤에 오면, 포인터 값 자체를 바꿀 수 없게 됩니다. */ void SetMessage(const char* msg) { // msg 매개변수는 스택에 추가로 생성된다. // 즉 main 함수의 msg와는 다른 메모리 공간에 저장된다. // 즉, 값복사가 이루어진것. msg = "Bye..
2023.10.26 -
https://stackoverflow.com/questions/1674032/static-const-vs-define-vs-enum "static const" vs "#define" vs "enum" Which one is better to use among the below statements in C? static const int var = 5; or #define var 5 or enum { var = 5 }; stackoverflow.com 몇가지 주목할 점: #define은 전처리기가 처리(즉, 그냥 문자그대로 바꿔치기) . 따라서 디버깅 할때 심볼이 따로 안잡힘. 디버깅 어려움 사용성에서 const int는 제약이 생길수도. 배열크기 초기화, switch문 인덱스값 등에 사용할 수 없을 수..
"#define" vs "static const" vs "enum"https://stackoverflow.com/questions/1674032/static-const-vs-define-vs-enum "static const" vs "#define" vs "enum" Which one is better to use among the below statements in C? static const int var = 5; or #define var 5 or enum { var = 5 }; stackoverflow.com 몇가지 주목할 점: #define은 전처리기가 처리(즉, 그냥 문자그대로 바꿔치기) . 따라서 디버깅 할때 심볼이 따로 안잡힘. 디버깅 어려움 사용성에서 const int는 제약이 생길수도. 배열크기 초기화, switch문 인덱스값 등에 사용할 수 없을 수..
2023.10.26 -
#include using namespace std; // 오늘의 주제: 포인터 vs 배열 void TestFunc(char param[]) // 배열을 함수인자로 넘기면 알아서 포인터로 치환한다. { // 어셈블리를 까 보면 결국 포인터로 전달 param[0] = 'A'; } int main() { // 문자열 == 문자의 배열 cout
[언리얼 MMORPG pt1] 포인터 vs 배열#include using namespace std; // 오늘의 주제: 포인터 vs 배열 void TestFunc(char param[]) // 배열을 함수인자로 넘기면 알아서 포인터로 치환한다. { // 어셈블리를 까 보면 결국 포인터로 전달 param[0] = 'A'; } int main() { // 문자열 == 문자의 배열 cout
2023.10.26 -
#include using namespace std; struct StatInfo { int hp = 0xAAAAAAAA; int attack = 0xBBBBBBBB; int defence = 0xDDDDDDDD; }; int main() { // TYPE 이름[개수]; // 배열의 크기는 상수여야 함 (VC 컴파일러 기준, gcc는 통과함) const int MONSTER_COUNT = 10; StatInfo monsters[MONSTER_COUNT]; // 여태껏 변수들의 [이름]은 바구니의 이름이었음 // 배열은 [이름] 조금 다르게 동작한다. StatInfo players[10]; // players = monsters; // error // 그럼 배열의 이름은 뭐지? // 포인터다. 즉, 배열의..
[언리얼 MMORPG pt1] 배열 기초#include using namespace std; struct StatInfo { int hp = 0xAAAAAAAA; int attack = 0xBBBBBBBB; int defence = 0xDDDDDDDD; }; int main() { // TYPE 이름[개수]; // 배열의 크기는 상수여야 함 (VC 컴파일러 기준, gcc는 통과함) const int MONSTER_COUNT = 10; StatInfo monsters[MONSTER_COUNT]; // 여태껏 변수들의 [이름]은 바구니의 이름이었음 // 배열은 [이름] 조금 다르게 동작한다. StatInfo players[10]; // players = monsters; // error // 그럼 배열의 이름은 뭐지? // 포인터다. 즉, 배열의..
2023.10.26 -
포인터 vs 참조 -성능: 똑같음 편의성: 참조 승! 1. 편의성 관련 편의성이 좋다는게 꼭 장점만은 아니다 포인터는 주소를 넘기니 확실하게 원본을 넘긴다는 힌트를 줄 수 있는데, 참조는 자연스럽게 모르고 지나칠 수도 있음 StatInfo info; // 포인터 PrintInfo(&info); // 참조 PrintInfo(info); 만약 신입이 와서 info.hp = 10000; 이런식으로 조져버릴수도 있다. -> const 사용해서 방지 const 사용 별(*)기준, 앞에다 붙이는것과 뒤에 붙이는게 다름 별 뒤에 붙인다면? StatInfo* const info info = &globalInfo; 가 막힘 info라는 바구니의 내용물[주소]을 바꾸지 못하게 info 주소값을 갖는 바구니 -> 주소값이 ..
[언리얼 MMORPG pt1] 포인터 vs 참조포인터 vs 참조 -성능: 똑같음 편의성: 참조 승! 1. 편의성 관련 편의성이 좋다는게 꼭 장점만은 아니다 포인터는 주소를 넘기니 확실하게 원본을 넘긴다는 힌트를 줄 수 있는데, 참조는 자연스럽게 모르고 지나칠 수도 있음 StatInfo info; // 포인터 PrintInfo(&info); // 참조 PrintInfo(info); 만약 신입이 와서 info.hp = 10000; 이런식으로 조져버릴수도 있다. -> const 사용해서 방지 const 사용 별(*)기준, 앞에다 붙이는것과 뒤에 붙이는게 다름 별 뒤에 붙인다면? StatInfo* const info info = &globalInfo; 가 막힘 info라는 바구니의 내용물[주소]을 바꾸지 못하게 info 주소값을 갖는 바구니 -> 주소값이 ..
2023.10.25 -
포인터 기초 #include using namespace std; // 오늘의 주제: 포인터 void SetHP(int* hp) { *hp = 100; } int main() { int number = 1; int hp = 1; SetHP(&hp); // 포인터로 주소를 넘겨줘야 값을 변경가능 // TYPE* 변수명; // 일단 2가지 요소 // - TYPE // - * // 바구니는 바구니인데... // [주소를 저장하는 바구니다!] // 참고) 포인터라는 바구니는 4바이트(32비트) 또는 8바이트(64비트) 크기 고정이다. int* ptr = &number; // 근데 남의 주소를 갖고 뭘 하라는거지? // 추가 문법: [주소를 저장하는 바구니]가 가리키는 주소로 가서 무엇인가를 해라! // *변수이..
[언리얼 MMORPG pt1] 포인터포인터 기초 #include using namespace std; // 오늘의 주제: 포인터 void SetHP(int* hp) { *hp = 100; } int main() { int number = 1; int hp = 1; SetHP(&hp); // 포인터로 주소를 넘겨줘야 값을 변경가능 // TYPE* 변수명; // 일단 2가지 요소 // - TYPE // - * // 바구니는 바구니인데... // [주소를 저장하는 바구니다!] // 참고) 포인터라는 바구니는 4바이트(32비트) 또는 8바이트(64비트) 크기 고정이다. int* ptr = &number; // 근데 남의 주소를 갖고 뭘 하라는거지? // 추가 문법: [주소를 저장하는 바구니]가 가리키는 주소로 가서 무엇인가를 해라! // *변수이..
2023.10.24 -
학습법 개관: 에러 정정 기법 손실함수 기울기 강하 기법 기울기 강하 기법의 신경망 학습 적용 개관 2. 단계층 신경망 학습: 델타 규칙 가중치에 대한 손실함수의 편미분 델타 규칙의 이해 3. 다계층 신경망 학습: 역전파 학습 알고리즘 역전파 학습 개념 합성함수의 미분 노드 에러 기울기 가중치 에러 기울기 오류 역전파 알고리즘 가중치 갱신 오류 역전파 알고리즘
[AI 입문] 신경망 학습학습법 개관: 에러 정정 기법 손실함수 기울기 강하 기법 기울기 강하 기법의 신경망 학습 적용 개관 2. 단계층 신경망 학습: 델타 규칙 가중치에 대한 손실함수의 편미분 델타 규칙의 이해 3. 다계층 신경망 학습: 역전파 학습 알고리즘 역전파 학습 개념 합성함수의 미분 노드 에러 기울기 가중치 에러 기울기 오류 역전파 알고리즘 가중치 갱신 오류 역전파 알고리즘
2023.10.23 -
1. FNN의 구조 이해 FNN 구조 개요 FNN 동작 개요 가중치 행렬 표기 방식 가중치 행렬 사례 2. FNN의 계층 뉴럴 계층(Neural Layer) 함수 계층 3. 순방향 처리 (추론) FNN 관련 명칭 및 표기 단일 데이터 처리 배치(batch) 처리 4. 다층 신경망 활용 회귀 이진 분류 다중 분류
[AI 입문] 다층신경망(FNN)의 이해1. FNN의 구조 이해 FNN 구조 개요 FNN 동작 개요 가중치 행렬 표기 방식 가중치 행렬 사례 2. FNN의 계층 뉴럴 계층(Neural Layer) 함수 계층 3. 순방향 처리 (추론) FNN 관련 명칭 및 표기 단일 데이터 처리 배치(batch) 처리 4. 다층 신경망 활용 회귀 이진 분류 다중 분류
2023.10.23 -
생물학적 신경망과 학습 신경망 모델링 뉴런의 연산 모델 (구간 단위) 선형 계열 활성화 함수 시그모이드 활성화 함수 뉴런 연산 예제 물리적 구성 단층 신경망: 퍼셉트론 퍼셉트론의 구조와 동작 선형분리성 퍼셉트론 수렴성
[AI 입문] 신경망 기초생물학적 신경망과 학습 신경망 모델링 뉴런의 연산 모델 (구간 단위) 선형 계열 활성화 함수 시그모이드 활성화 함수 뉴런 연산 예제 물리적 구성 단층 신경망: 퍼셉트론 퍼셉트론의 구조와 동작 선형분리성 퍼셉트론 수렴성
2023.10.23 -
1. 머신러닝의 개념 i. 전통적 프로그래밍의 한계 ii. 머신러닝의 기본 원리 2. 머신러닝의 기술적 체계 ML 체계: 1 머신러닝 태스크 ML 체계: 2 머신러닝 기법 머신러닝 학습기법은 학습 및 활용의 분리 여부에 따라 인스턴스 기반과 모델 기반으로 분류 가능 인스턴스 기반 기법: (대표적) KNN 모델 기반 기법: (대표적) 뉴럴 네트워크 ML 체계: 3 머신러닝 학습 방식 3. 머신러닝 기법의 구성 머신러닝 기법은 학습데이터, 모델, 학습 알고리즘의 3가지 요소로 구성 i. 학습 데이터 ii. 학습 모델 iii. 학습 알고리즘 4. 딥러닝 개요 딥러닝의 부상 이유 딥러닝 특징
[AI 입문] 머신러닝(Machine Learning)의 이해1. 머신러닝의 개념 i. 전통적 프로그래밍의 한계 ii. 머신러닝의 기본 원리 2. 머신러닝의 기술적 체계 ML 체계: 1 머신러닝 태스크 ML 체계: 2 머신러닝 기법 머신러닝 학습기법은 학습 및 활용의 분리 여부에 따라 인스턴스 기반과 모델 기반으로 분류 가능 인스턴스 기반 기법: (대표적) KNN 모델 기반 기법: (대표적) 뉴럴 네트워크 ML 체계: 3 머신러닝 학습 방식 3. 머신러닝 기법의 구성 머신러닝 기법은 학습데이터, 모델, 학습 알고리즘의 3가지 요소로 구성 i. 학습 데이터 ii. 학습 모델 iii. 학습 알고리즘 4. 딥러닝 개요 딥러닝의 부상 이유 딥러닝 특징
2023.10.23