# 포팅(Porting): 어떤 컴퓨터시스템에서 사용되던 소프트웨어를 다른 기종의 컴퓨터에서 동작하도록 이식하는 것을 포팅이라고 한다. # 컴퓨터 워드(word): 컴퓨터 연산의 기본 단위 1. CPU에서 한번에 처리할 수 있는 비트 수 2. 운영체제에서 사용하는 커널의 비트 수 3. 컴파일러에서 사용하는 데이터 단위 - 64bit 운영체제에서 1워드=64bit # 아스키코드: 0~127 (7bit) + 에러 검출 비트 (parity bit, 1bit) 총 8bit. # 유니코드: 전 세계 언어코드를 포함하고자 만들어진 국제 표준코드. - BMP(Basic Multilingual plane, 다국어판)에 한국어가 포함되어있다. # UTF(Unicode Transformation Format)는 유니코드 ..
# 폰 노이만 구조 폰 노이만 구조란 기존 대부분의 컴퓨터가 채택하고 있는 로 이루어진 프로그램 내장방식의 설계구조이다. - 프로그램 내장방식이란, '전자계산기에 기억장치를 갖추고 연산의 순서를 부호화해 기억시킨 후 기억된 내용을 순차적으로 꺼내 명령을 해독하고 연산을 실행하는' 방식이다. - 1945년 당시 진공관과 전선으로 코딩을 하던 시대;;에서 이런 프로그램 내장방식의 등장은 가히 혁신적이었다. - CPU, 메모리, 입출력장치의 구조는 건들일 필요 없이 소프트웨어만 손보면 원하는 연산을 얻어낼 수 있게 되기 때문이다. [특징] 1. 명령과 데이터를 저장하는 주기억장치(메모리), 산술논리 연산장치(ALU), 프로그램 제어장치(Control Unit), 입출력장치로 구성된다. 2. 프로그램 코드는 기..
# 컴퓨터란 컴퓨터(Computer)라는 용어는 "계산하는 사람"에서 유래했다. 18세기 대항해시대, 배에서 항로계산을 담당하던 사람을 "컴퓨터"라고 부르던 것에서 온 것이다. 컴퓨터의 사전적 의미는 "외부 프로그램이나 데이터 입력을 받아들여 내부 전자회로에서 자료를 계산하거나 처리해 정보를 저장하고 결과를 출력하는 기계" 이다. 또한 컴퓨터 시스템이란 그러한 기능을 수행하는 체계를 뜻한다. # 컴퓨터 시스템의 구성요소 컴퓨터 시스템은 하드웨어와 시스템 소프트웨어의 결합으로 이루어진다. 1. 하드웨어 = "컴퓨터의 내부적인 동작을 담당하는 물리적인 기계장치" 하드웨어는 컴퓨터 시스템을 구성하는 전자부품, 보드, 주변장치와 기계 설비이다. 정보가 실제로 처리되는 물리적인 장치와 정보의 전송 결로를 말한다...
매트랩을 사용하는 시험 대비를 하다가 문득.. 매트랩으로 벡터는 어떻게 그리지? 하는 궁금증이 들었다. x, y, z 축을 기준으로 하는 유닛벡터를 3차원 그래프로 어떻게 그릴 수 있을까?? 일단 제일 만만한 plot, plot3은 아니다 ㅎㅎ.. 바로 quiver3(3차원 퀴버 플롯)을 사용해야 한다고 한다. Matlab doc에 따르면 quiver3은 다음과 같은 파라미터를 넣어주면 된다 quiver3(x, y, z, u, v, w) x, y, z = 각 벡터의 원점 u, v, w = 각 벡터의 성분 그 뒤에 붙는건 옵션 (선 색깔) 뭔소린지 모르겠으니 바로 코드로 알아보자 # 방법 1. o = [0,0,0]; // 원점 x = [1;0;0]; // i방향 단위벡터(열벡터) y = [0;1;0]; /..
중간고사 시험 공부용 2 이런 암기식 시험 별로 안좋아하는데,, 필요하면 검색해보고 쓰면 되는데 말이지.. 썩 마음에 들지 않지만 해야지 어떡하겠나.. ---- 뷰(View) - 화면에 보이는 모든 요소는 뷰. - 사용자가 보고 상호작용할 수 있는 것을 그린다. 뷰 그룹(View Group) - 뷰를 여러개 담을 수 있는 그룹. - 객체의 레이아웃 구조를 정의하는 보이지 않는 컨테이너. 뷰를 화면에 배치하는 역할. - 뷰 그룹은 뷰를 상속받는다. 따라서 뷰 그룹도 뷰처럼 다뤄질 수 있다. 레이아웃(Layout) - 뷰 그룹 중에서 내부에 뷰들을 포함하고 있으면서 그것들을 배치하는 역할. - 레이아웃은 뷰 그룹을 상속받는다. 레이아웃 -> 뷰 그룹 -> 뷰. => 레이아웃도 결국 뷰 클래스. - 사실상 뷰..
CNN에서 Network Training을 할 때 사용되는 option에 대해 알아보자 일단 대략적인 순서는 다음과 같다 1. 학습 데이터를 Train Set, Test Set, Validation Set 세 가지로 나눈다 Training Data - 가중치 학습에 사용되는 데이터 Validation Data - "학습 중" 성능 평가에 사용되는 데이터 Test Data - "학습 모두 끝난 후" 성능 평가에 사용되는 데이터 [trainData, valData, testData] = splitEachLabel(DataSet, 0.8, 0.1, 0.1); 2. option 설정 2-1) 알고리즘 * 대부분의 알고리즘은 "★경사 하강법★"을 기반으로 한다 - Loss Function에서 제일 최소점을 향해 ..
# Convolutional Neural network의 레이어 구성 여기서, FullyConnectedLayer는 있는 경우도 있고 없는 경우도 있다. 대충 앞에서 다 봤으니 빠르게 알아보자 # ImageInputLayer - input size를 정의하고, 데이터를 정규화한다. (정규화는 데이터의 평균값을 구해서 빼는 방식) # Convolution Layer - Feature Extraction 하기 위해 사용된다. CNN에서 가장 핵심 레이어. - input 파일에 필터를 씌운다(Sliding Filter) - 필터 내부 값(가중치 값)은 내가 정하지 않음. 훈련을 통해 특징을 잘 찾아내도록 계속 수정해 가는 것. - 필터 사이즈만 정해주면 내부 가중치는 학습을 통해 만들어진다. - Transfe..
네트워크를 사용하는건 세가지 방법이 존재한다 1. Pretrained Network - 다른 사람이 만들어놓은 네트워크를 그냥 그대로 사용한다 2. Transfer Learning - 다른 사람이 만들어놓은 네트워크를 가져오되 내 입맛에 맞게 수정해 사용한다 - 네트워크 뒤편, Fully-Connected Layer, output Layer만 수정해서 사용하기만 해도 된다. - 상당수의 경우 Transfer Learning 네트워크만 사용해도 만족스러운 결과를 예측한다. - 단, input 입력 크기가 고정되어 있기 때문에 이 조건에 맞지 않으면 사용할 수 없거나, 성능이 매우 떨어진다. (input이 3채널 이상이거나, 이미지 크기가 맞지 않거나(업스케일링-> 픽셀 깨짐 -> 성능 하락) 등..) 3...