이것저것

    3D 변환

    3D 변환

    3D Transform 앞선 글에서는 2차원, 그러니 좌표평면에서 물체에 대해 tranlation, scaling, rotation을 하는 방법을 알아봤어요. 이번에는 이 내용들을 3차원에서 사용할 수 있도록 확장할 거예요. 전반적인 내용은 달라지지 않지만 조금 더 복잡해지는 내용들이 있을 거예요! 2차원에서 시작하기 2차원에서 한 점의 좌표는 2개의 수로 표현되며, 이것을 행렬을 이용해서 표현할 때 1행 3열 행렬을 사용했어요. 그럼 공간에서는 3개의 수가 하나의 점을 지정하므로 1행 4열 행렬을 이용하면 되겠지요. $\begin{pmatrix}x&y&z&1\end{pmatrix}$ 4번째 열의 값은 변환 행렬을 곱할 때 효과가 제대로 적용되기 위한 수로 고정하고 나머지 $x$, $y$, $z$에 점의..

    2D 변환 - WebGL

    2D 변환 - WebGL

    2D Transform 앞선 글에서 WebGL을 사용하여 도형을 그리는 방법을 알아봤어요. 이제 이 도형을 필요에 따라 변형하는 방법을 알아볼 거예요. 변형(Transform)은 다음과 같이 3가지가 있어요. Translation (평행이동) Scaling (크기 조정) Rotation (회전) 이번에는 코드를 먼저 전부 올릴게요. 더보기 WebGL 주요 수정사항은 다음과 같아요. 도형을 삼각형에서 F로 바꾸었어요. 삼각형은 간단한 도형이기 때문에 첫 번째 예제로는 적합하지만 회전했을 때 구분하기 힘들기 때문에 어느 방향에서 봐도 모양이 다른 F를 사용할 거예요. position 배열을 바꿈으로써 수정했지요. 도형의 색을 검은색으로 바꾸었어요. 가시성을 위해서이지요. 평면을 입력시에 0,0 ~ 800,6..

    WebGL의 기본

    WebGL의 기본

    WebGL WebGL 하면 보통 멋있는 3D 엔진, 뭔가 멋진 결과물을 만들 수 있는 마법의 프로그램이라 생각하는 경우가 있어요. 그럴 법도 하죠. 웹브라우저에서 3D로 뭔가를 하면 WebGL로 구현되어 있는 경우가 대부분이니까요. 우선 WebGL로 만들어진 몇 가지 프로그램을 소개할게요. 멋있죠. 하지만 사실 WebGL은 웹에서 3D 작업을 마법처럼 처리해주는 도구는 아니에요. 대신 래스터라이제이션(Rasterization) 도구에 가깝지요. WebGL에 도형(Geometry)을 입력으로 넣어주면 그것을 평면에 그린 이미지를 그리는 게 WebGL의 역할이에요. 그래서 앞으로 WebGL을 하면서 다룰 내용은 아마 여러분이 생각하는 화려한 무언가와는 좀 거리가 있을 수도 있어요. Vertex shader,..

    SSMT PRIME 1차

    SSMT PRIME 1차

    Science School Mock Test PRIME 1 시험지 —— 안내 —— 위 문제는 영재학교 입학시험의 스타일에 따라 제가 직접 출제한 문제입니다. 총 2문제, 각 문제에는 3개의 소문제가 있습니다. 시험지는 문제지 4 페이지, 답안지 2페이지, 연습지로 이루어져 있습니다. 시험시간은 100분입니다. 모든 시험지는 A4 크기입니다. 인쇄시에는 양면인쇄합니다. —— 응시 유의사항 —— 서술형 답안지는 흑색 연필 또는 흑색 볼펜으로 작성합니다. 답안 수정은 지우개 사용 또는 두 줄 긋고 답안을 작성합니다. 답안지에 불필요한 표시를 하지 마세요. 연습지는 1장 주어지나 필요한 경우 더 요청할 수 있습니다. 연습지에 작성한 내용은 채점하지 않습니다. 문제지, 답안지, 연습지의 모든 성명과 수험번호 란에..

    Softmax Regression Classification

    Softmax Regression Classification

    Softmax Classificaition의 필요성? 이전 글에서 입력 데이터를 2개의 부류로 나누는 방법인 Logistic Classification을 다뤘어요. 이 방법은 이분적인 데이터를 처리하는데 유용하지만 만약 데이터가 셋 중 하나, 혹은 넷, 다섯 중 하나라면 Logistic Classification을 바로 쓰기는 어려워요. 그래서 이것을 확장한 분류 방법, Softmax Classification을 알아봐요. 여러 개로 "분류"하기 한번 3가지로 나누어질 수 있는 데이터를 생각해봐요. 예를 들어 성적을 A, B, C로 나누는 학교를 생각해요. 즉, class는 A, B, C가 되는 거예요. 그리고 공부시간에 따른 성적을 정리해보면 다음과 같을 것이에요. 공부시간이 많아질 수록 A에 가까워지..

    로지스틱 회귀를 사용한 분류(Logistic regression classification)

    로지스틱 회귀를 사용한 분류(Logistic regression classification)

    분류(Classification)는 어떠한 데이터를 기준에 따라 적당한 그룹으로 정하는 것이에요. 말은 거창하지만 쉽게 말해서 어떤 사진이 고양이인지/개인지, 어떤 점수를 바탕으로 A등급이 예상되는지 B 등급이 예상되는지 정하는 것이에요. 이번 글에서는 데이터를 2개의 선택지 중 하나로 분류하는 방법에 대해 다룰 거예요. 우선 데이터를 실수로 표현하기 위하여 첫 번째 선택지를 0, 두번째 선택지를 1로 정하고 각 데이터를 0이상 1이하의 실수로 나타낼께요. 예를 들어 어떤 데이터가 0.01이라는 것은 첫번째 선택지에 가깝다는 거예요. 만약 데이터가 어떠한 기점을 중심으로 선택지가 갈린다면 다음 그래프와 같이 데이터를 나타낼 수 있겠죠. 우리의 목표는 어떠한 점을 기준으로 데이터의 분류가 갈리는지 알아내서..

    컴퓨터를 자동으로 꺼주는 프로그램을 만들기 위하여

    컴퓨터를 자동으로 꺼주는 프로그램을 만들기 위하여

    필요 인식 제가 하루 중 가장 많이 사용하는 기계는 컴퓨터예요. 아무것도 안 하고 켜놓는 시간까지 포함하면 하루에 4시간은 켜놓죠. 그런데 이렇게 사용하면서 문제가 발생했어요. 바로 컴퓨터 전원 관리가 힘들어진 것이죠. 전원을 켜는 것은 필요할 때 켜면 되는 것이니 어려울 것 없는데 끄는 것은 깜빡 잊고 켜놓은 상태로 외출하면 영락없이 에너지 낭비로 이어지죠. 그래서 개인용 PC에 원격으로 전원을 끄는 시스템을 구축하기 위해 연구해 보았어요. 아이디어 1. Remote Desktop 사용하기 가장 먼저 떠오른 아이디어에요. 실제로 이미 내 PC에는 Remote Desktop 시스템이 구축되어 있고, 외부망에서 접속할 수 있으니 딱히 건들건 없어요. Pros: 별도의 시스템 구축이나 설정이 필요 없다 :)..

    선형회귀(Linear Regression)

    선형회귀(Linear Regression)

    현실의 많은 것은 양의 상관관계를 가지고 있다. 가령 공부를 많이 하면 시험 점수가 올라가고, 밥을 많이 먹을수록 몸무게가 증가한다. 이러한 것들을 분석하기 위한 모델이 선형 회귀(Linear Regression)이다. 선형회귀분석은 데이터의 입력(X)과 출력(Y)이 선형적인 관계를 가질 것으로 예측한다. 가령 하나의 입력을 받아 하나의 출력을 만드는 데이터는 다음과 같은 관계를 생각할 수 있다. $Y=WX+b$ 일차함수 모양이다. 우리는 이러한 관계를 Hypothesis(가설)이라고 하여 함수 $H(X)$로 표현한다. 즉, 하나의 입력이 있는 선형 회귀의 Hypothesis는 다음과 같다. $H(X)=WX+b$ 여기서 $X$는 입력 데이터, $W$는 웨이트(weight), $b$는 바이어스(bias)이..