딥러닝이란?(3)
·
개발 일지/기타
딥러닝은 뭘 보고 공부하나? ▶ 인간도 마찬가지입니다. 대체 뭘 보고 공부할까요? ▶ 우리는 어떤 공부를 할 때 이해를 기초로 하여 그 원리를 깨닫고 이를 해석할 수 있는 실력을 기릅니다. ▶ 하지만 그렇다고 한 들 '학습이 잘 되었는가?'는 판단하려면 꼭 거쳐야 하는 것이 있습니다. ▶ 바로 '시험'입니다. ▶ 시험 점수만 봐도 학습을 제대로 했는지 덜 했는지 판단할 수 있습니다. ▶ 그리고 딥러닝의 학습에도 이런 '시험' 같은 존재가 존재하고 이를 통해서 딥러닝은 학습을 진행합니다. ▶ 그리고 이미 우리는 그 방식을 사용해서 이미 AND와 OR, XOR을 만들어보았습니다. ▶ 바로 '손실 함수(Loss Function)'입니다.손실로 평가하다 ▶ 인간에 대한 비유를 해봤으니 더 해보겠습니다. ▶ 앞선..
딥러닝이란?(2)
·
개발 일지/기타
신경망의 심층 구조   인공신경망은 딥러닝이 아니다. ▶ 앞서 AND 와 OR 문제의 구조를 도식화해보면 좌측과 같을 것입니다. ▶ 하지만 우리는 이것을 '딥러닝'이라고 부르기 힘든 것을 알고 있습니다. ▶ 'Deep(심층)'한 속성을 가지지 않기 때문입니다. ▶ 그래서 이는 '인공신경망'이라고 부를 수 는 있지만 '딥러닝'이라고 부를 수는 없습니다. ▶ 그럼 어째서 딥러닝이 탄생하게 되었을까?XOR 문제#필요한 라이브러리를 임포트합니다.import numpy as np # 숫자 계산을 위한 라이브러리import keras # 딥러닝 모델을 만들기 위한 라이브러리from keras import layers, optimizers # keras에서 레이어와 옵티마이저를 가져옵니다.랜덤 시드를 고정하여 ..
딥러닝이란?
·
개발 일지/기타
딥러닝(Deep Learning: 심층학습) ▶ 일전 Machine Learning에 대해서 배웠습니다. 그렇다면 Deep Learning은 Machine Learning과 무엇이 다를까요? ▶ Machine Learning과 Deep Learning을 가르는 가장 큰 차이는 바로 인간의 뇌에서 신경세포인 '뉴런(Neuron)'을 본따 만든 '인공 뉴런(일명 Node)'이 존재합니다. ▶ 이 차이가 Machine Learning과 Deep Learning을 크게 구분하지만 앞서서 Machine Learning에는 Perceptron이라는 Deep Learning과 유사한 방식의 Machine Learning 기법이 있습니다. ▶ 때문에 한가지 속성을 더하는데 바로 '구조의 깊이가 깊다'라는 속성입니다. ..
gdb 사용
·
개발 일지/기타
GDB(GNU Debugger)는 C와 같은 언어로 작성된 프로그램에서 발생하는 버그나 비정상적인 동작을 추적하고 수정하는 데 사용되는 강력한 도구입니다. GDB를 사용하면 프로그램의 실행 중단, 변수 값 확인, 코드 스텝별 실행 등을 할 수 있습니다. 아래는 GDB 사용법에 대한 기본적인 가이드입니다.1. 프로그램 컴파일먼저, 디버깅 가능한 정보를 포함하여 프로그램을 컴파일해야 합니다. 이를 위해 -g 옵션을 추가합니다. gcc -g -o my_program my_program.c -g 옵션은 디버깅 정보를 바이너리 파일에 포함시킵니다.2. GDB 시작컴파일이 완료되면 GDB를 실행합니다.gdb ./my_program이 명령을 입력하면 GDB가 실행되고, GDB 프롬프트((gdb))가 나타납니다.3. ..
컨텍스트 스위칭
·
개발 일지/기타
컨텍스트 스위칭: 하나부터 열까지 완벽 정리컨텍스트 스위칭이란?쉽게 말해, 작업이나 생각의 흐름을 전환하는 것입니다.컴퓨터는 여러 프로그램을 동시에 실행하는데, 이때 CPU는 각 프로그램에 일정 시간을 할당하여 빠르게 작업을 전환합니다. 이것이 컴퓨터 과학에서의 컨텍스트 스위칭입니다.인간에게는 하던 일을 멈추고 다른 일로 주의를 돌리는 것을 의미합니다. 예를 들어, 보고서를 쓰다가 갑자기 걸려온 전화를 받는 것이 컨텍스트 스위칭입니다.  답안컨텍스트 스위칭: 네트워크 프로그래밍 관점에서의 이해네트워크 프로그래밍 학습을 위해 컨텍스트 스위칭을 간략하게 설명했지만, 깊이 있는 이해를 위해서는 CPU 레지스터를 중심으로 설명해야 합니다. 컨텍스트 스위칭과 CPU 레지스터CPU 레지스터: CPU 내부에 존재하는..
EOF란?
·
개발 일지/기타
EOF (End-Of-File) 완벽 가이드EOF는 **"End-Of-File"**의 약자로, 파일의 끝을 나타내는 특수한 표시입니다. 컴퓨터는 파일을 읽을 때 EOF를 만나면 더 이상 읽을 데이터가 없다는 것을 인식하고 파일 읽기를 중단합니다.1. EOF의 역할파일 읽기 종료: 프로그램이 파일을 읽을 때, EOF를 만나면 파일의 끝에 도달했음을 알리고 읽기를 멈춥니다. 이를 통해 프로그램은 파일 전체를 정확하게 처리할 수 있습니다.오류 방지: EOF를 사용하면 파일 끝을 넘어 읽으려고 시도하는 오류를 방지할 수 있습니다. 이러한 오류는 프로그램 충돌이나 예기치 않은 동작을 유발할 수 있습니다.2. EOF의 작동 방식실제 저장 방식: EOF는 실제로 파일에 저장되는 특정 문자나 값이 아닙니다. 운영체제는..