전체보기 160

1. Tensor 기초

1. Tensor의 생성 기본적으로 세가지 방법을 통해서 생성할 수 있다. 랜덤으로 초기화한 텐서 생성, 리스트에서 텐서 생성, 넘파이에서 텐서 생성. 기본적으로 Tensor의 디폴트 텐서타입은 float32이지만, 넘파이에서 텐서를 생성하게 되면 float64(double)형식으로 생성된다. 2. 텐서의 기초 메소드 - add와 + 연산은 동일하다 - list와 넘파이에서의 arange와 동일하다 - view는 동일한 데이터를 공유하는 새로운 텐서를 만든다. 데이터의 포인터값은 동일하기 때문에, 원본 데이터의 값이 변하면 뷰 텐서의 값 역시 같이 변한다. - sum은 해당 차원의 값들을 모두 더한다. (2,3에서 dim=0이면 2개의 값들을 더해줌) - transpose는 전치해줌. (두번째, 세번째 ..

Python/NLP+Pytorch 2023.01.25

2-3. 선형독립, 선형종속 추가 (수식 정의, 증명)

1. 선형종속 증명 선형종속을 만족하는 벡터들의 집합 S의 원소에 v1, v2, ..., vn까지 있다고 하자. 필요충분조건(iff, if and only if, 초록색 양방향 화살표)으로서 c1·v1+...+cn·vn = 0 을 만족시킨다면 선형종속이라고 할 수 있으며, 선형종속을 만족시킨다면 c1·v1+...+cn·vn = 0 이라고 할 수 있다. 이 때의 상수 c1, c2, ... cn에서 어떤 ci는 0이 아니다. 즉, 상수 c 중에서 0이 아닌 것이 최소한 1개는 존재한다는 의미이다. 이를 증명해보자. 선형종속을 만족하는 v1, v2, ... , vn이 있다. 선형종속이라면 한 벡터는 다른 벡터들의 합으로 표현될 수 있다고 가정하자. 수식으로 표현하면 v1 = a2v2 + a3v3 + ... +..

2-2. 선형독립, 선형종속

1. 선형종속(Linearly Dependent) & 선형독립(Linearly Independent) Span{ (2,3), (4,6) }이 있을 때, 두 벡터로 생성할 수 있는 모든 벡터는 무엇일까? (2,3)과 (4,6)은 한 직선 위에 있기 때문에, Span{ c*(2,3) }과 같이 표현할 수 있다. 즉, 첫 번째 벡터의 스칼라곱으로 간단히 나타낼 수 있다. R²상에서 생성할 수 있는 벡터는 직선뿐이다. 이러한 것을 보고 선형종속이라고 한다. 어떤 벡터를 선택하든 새로운 방향이나 정보가 없기 때문에, 크기만 커질 뿐 동일한 방향으로 진행하며 직선을 벗어나는 새로운 차원이 주어지지 않는다. R³공간에서 동일선상에 없는 벡터a와 또 다른 벡터b가 있으면 2차원 공간을 정의하게 된다. 이 평면이 노란색..

2-1. 선형결합과 생성

1. 선형결합(Linear Combination) 선형대수학 전반에서 등장하는 선형결합에 대해서 알아보겠다. 벡터의 선형결합이라는 것은 말 그대로 벡터들을 단순히 다 더하는 것이다. n차원 상의 벡터가 m개만큼 존재할 때, v1~vm까지 임의의 상수를 곱해서 더하는 것이다. 구체적인 예시를 들어보면 아래와 같다. 벡터 a는 (1,2), 벡터 b는 (0,3)이라고 한다면, 임의의 c1과 c2를 곱해서 새로운 벡터를 만들어 낼 수 있다. 이렇게 만들어진 벡터들을 R²위에 표현하면, 어떤 벡터든 a와 b의 선형결합으로 나타낼 수 있다. 결론적으로 Span(a, b)는 R²라고 할 수 있다. 하지만, 어떤 두 벡터가 있더라도 R²의 모든 벡터를 나타낼 수 있는 것은 아니다. a와 b가 영벡터이거나, 동일한 직선..

1-3. 벡터 (단위벡터와 직선의 매개변수 표현)

1. 단위벡터(Unit Vectors) 벡터 v가 2-튜플 (2, 3)이라고 한다면, 이를 어떻게 단위벡터를 활용하여 표현할 수 있을까요? 그러기 위해 일단은 단위벡터를 정의해본다면, 단위 벡터는 길이가 '1'인 벡터이다. 단위 벡터는 종종 알파벳 위에 곡절부호(circumflex)를 쓰고, '햇'이라고 읽는다. v^로 표기되며, '브이 햇'(v hat)으로 읽는다. 단위벡터 i는 수평방향으로 1단위만큼만 움직이는 벡터라고 하고, 단위벡터 j는 수직방향으로 1단위만큼만 움직이는 벡터라고 정의한다면 어떤 2차원 벡터든지 간에 i와 j의 합으로 표현할 수 있다. 벡터 v는 (2, 3)이기 때문에, 2i^ + 3j^으로 표현될 수 있다. (-1, 4)인 벡터 b는 -1i^ + 4j^으로 표현될 수 있다. 벡터..

1-2. 벡터 (벡터의 덧셈과 곱셈)

1. 벡터의 덧셈 벡터 a와 벡터 b 2차원 벡터 두 개가 있다. 간단하게 말하면, 둘 다 두 값을 가진 2차원 벡터이니 대응하는 값을 서로 더하면 된다. 벡터 a와 벡터 b는 모두 실수좌표공간에서 생각해보면 R²의 벡터이며, 2-튜플이다. 이를 시각적으로 혹은 개념적으로 이해하기 위해서 그래프에 그려보면 위와 같이 된다. 크기와 방향만 같다면 시작점을 다른 곳에 그려도 똑같은 벡터이다. 보라색 벡터는 모두 다 같은 벡터 a이며, 녹색 벡터들은 모두 다 벡터 b이다. 두 벡터의 합은 (2, 2)이므로 파란색으로 그려보면 위와 같다. 그래프 상에서 보라색 벡터와 녹색 벡터를 더한 것이 파란색 벡터와 같다는 점을 발견할 수 있다. 즉, 벡터의 덧셈은 원점으로부터 얼마나 움직였나를 알아보는 것이다. 2. 벡터..

1-1. 벡터 (벡터와 실좌표공간)

1. 벡터란 벡터는 크기와 방향을 동시에 나타내는 것이다. 예를 들어 어떤 물체가 시속 5마일로 움직인다고 하면, 이는 벡터가 아니라 스칼라이다. 즉, 단지 크기(속력)은 벡터가 될 수 없다. 방향을 가져서 시속 5마일의 속력으로 동쪽으로 움직이고 있다(속도)고 말해야 벡터가 될 수 있다. 선형대수의 장점은 2차원 뿐만 아니라, 3, 4, 5차원, 6차원 이상으로 원하는 만큼 확장할 수 있고, 상상하기 어려운 3차원 이상을 수학적으로는 표현하여 쉽게 다룰 수 있다는 점이다. 아까의 예로 다시 돌아와서, 시속 5마일+동쪽을 그래프에서 표현하는 방법은 5의 크기를 가지는 화살표를 그리는 것이다. 여기 표현된 크기는 단위마다 시간당 속력을 나타내며, 방향은 오른쪽(동쪽)을 향합니다 그리고 벡터에서 재밌는 점은..

도커 컴포즈(Docker Compose) 뜻, 작성법 및 주의사항

1. Docker Compose 란 여러 개의 명령어를 하나의 yaml파일로 정리해서, 한번에 시스템 전체를 실행하고 종료와 폐기까지 시키는 방식. - Dockerfile과의 차이점 Dockerfile은 하나의 이미지를 만드는 방법이고, Docker Compose는 컨테이너+환경설정, 네트워크, 볼륨을 한 번에 만드는 방식이다. Dockerfile에서는 네트워크와 볼륨 생성 및 설정이 불가능하다. - 쿠버네티스와의 차이점 쿠버네티스는 컨테이너를 관리하는 도구이지만, 도커 컴포즈는 컨테이너를 생성하고 삭제하는 것 뿐이다. (관리 불가능) - 설치 Window와 MacOS에는 이미 설치가 되어있기 때문에, 따로 설치할 필요가 없다. 리눅스는 설치해야 한다. - 사용법 하나의 폴더에 docker-compose..

Dockerfile 작성법, 문법, 인스트럭션

Dockerfile 이란 도커 이미지를 만드는 스크립트이다. Dockerfile을 작성한 뒤, 아래와 같이 실행하면 도커 이미지가 빌드된다. #기본 빌드 방식 docker build -t 이미지이름 dockerfile의_경로 #dockerfile이 존재하는 폴더에서 빌드할 경우 docker build -t 이미지이름 . 1. 주요 명령어(인스트럭션) 명령어(인스트럭션) 내용 FROM 베이스 이미지 지정 ADD 이미지에 파일이나 폴더를 추가 COPY 이미지에 파일이나 폴더를 추가 RUN 이미지 빌드할 때, 실행할 명령어 지정 CMD 컨테이너 실행할 때, 실행할 명령어 지정 ENTRYPOINT 컨테이너 실행할 때, 강제로 실행할 명령어 지정 WORKDIR RUN, CMD, ENTRYPOINT, ADD, CO..

Docker 명령어 정리

1. Docker의 기본적인 명령어 형태 docker 상위커맨드 하위커맨드 (옵션) 대상 (인자) ex) docker container run -d test1 --mode=1 인자를 쓰는 경우는 많지 않음. 2. 커맨드 정리 1) container 관련 docker container start#컨테이너를 실행 docker container stop#컨테이너를 정지 docker container create#이미지로부터 컨테이너를 생성 docker container run#이미지를 다운받고, 컨테이너를 생성해서 실행 docker container rm#정지된 상태의 컨테이너를 삭제 docker container exec#실행 중인 컨테이너 속에서 프로그램을 실행 docker container ls#컨테이너..