👩‍💻LEARN : ML&Data 91

[딥러닝 파이토치 교과서] #4. 딥러닝 시작

사실 앞에 머신러닝 기법 파이토치로 구현하느 것도 있는데 정리 안하고 패스함..패스패스... 그렇다고 다 안다는 뜻은 아님... 그냥 코드로 구현하고 지쳤을뿐... 기존 텐서로 구현하던 것들을 이제 파이토치로 구현하는 법을 알면 되니까 짱쉬울줄 알았는데, 생각보다...음...?^^?? 하게 되는 부분이 많다. 아무래도 코딩 더 열심히 해야겠지 그렇지... #4. 딥러닝 시작 1. 딥러닝 용어 가중치(w) 입력값이 연산 결과에 미치는 영향력을 조절하는 요소. wx+b에서 w 가중합(sum(wx+b)) 전달함수라고도 하며, 각 노드에서 들어온 신호에 가중합을 곱한 값을 모두 더한 합계 가중합이 계산되면 이를 활성화 함수로 넘긴다. 활성화 함수 가중합을 출력할 때 일정 기준에 따라 출력값을 변화시키는 비선형 ..

[알고리즘 구현으로 배우는 선형대수] #7. 기저와 차원

3차원 현실 생활도 버거운데 ..난 2D 캐릭터가 딱 맞는데... 여튼 n차원을 ..가보자... #7. 기저와 차원 1. 벡터 공간 개념 벡터의 덧셈과 스칼라곱이 정의된 공간으로 선형공간임🤔.. 이라 하면 뭔말인가 싶은데 각 차원마다 기저벡터가 있고, 이에 대해 n을 곱하거나 벡터 간 더한 값으로 공간이 정의되기 때문에 위와 같은 정의가 된 것으로 보임 벡터 공간 안에서는 벡터의 길이, 방향을 구분하고 비교할 수 없음 (이는 추후 내적공간에서 확인) 벡터 공간의 공리 공간 V에 속하는 벡터 u,v에 대해서 두 벡터의 합 u+v도 공간V에 속한다 a가 임의의 스칼라이고 벡터 u가 공간 V에 속하면 au도 속한다 차원에 따른 벡터 1차원일 경우 원점 기준으로 +2, -2 등 하나의 원소로 구성됨 2차원일 경..

[알고리즘 구현으로 배우는 선형대수] #6. 역행렬

역행렬까진 쉽죠...기저 차원이 얼탈뿐... #6. 역행렬 역행렬의 개념 행렬 A의 역행렬 B는 AB = I를 만족한다. 즉 행렬곱한 결과가 단위 행렬I가 되는 것을 의미한다. 단 역행렬을 구하고자 하는 행렬의 행렬식이 0일 경우 역행렬은 존재하지 않음 가역행렬 : 역행렬이 존재(유일), 행렬식 !=0 특이행렬 : 역행렬이 없음, 행렬식 = 0 역행렬 계산 2*2일때 A = [[a,b],[c,d]]일때, 먼저 행렬식 !=0확인한 다음 좌측과 같이 계산 n*n일때 1. 각 원소 별 여인수(Cij)를 구함 2. 여인수로 이뤄진 여인수 행렬을 구함 3. 여인수 행렬의 전치행렬(transpose)인 행렬 A의 수반행렬(adj)을 구함 3. 행렬식을 구한 다음 (1/det(A)) * adj(A)로 역행렬 계산 정..

[알고리즘 구현으로 배우는 선형대수] #5. 행렬식

행렬식과 역행렬을 보며 코웃음 치던 저는 몰랐죠... 기저와 차원을 배우며 아찔해질 줄은.... #5. 행렬식 행렬식의 개념 행렬의 특성을 하나의 숫자로 표현하는 방법으로, 정사각 행렬을 스칼라로 변환하는 함수 행렬식을 통해 역행렬 구할 수 있음 해당 행렬의 특성을 알 수 있음. 3차원일 경우, 행렬의 벡터로 구성되는 육면체의 부피를 구하는 것 행렬식 계산법 2차원 행렬의 경우 det(A) = |A| = a11a22 - a12a21 주 대각행렬 원소를 곱한 값에 나머지 원소를 곱한 값을 빼는 것 3차원 이상 행렬의 경우 소행렬 : 원소 aij에 대한 소행렬은 i행과 j열 을 제외한 나머지 행렬로 구성된 행렬 소행렬식(Mij) : aij에 대한 소행렬식은 행렬 i행 j열을 제외하고 구성된 부분행렬의 행렬식..

[딥러닝 파이토치 교과서] #1. 파이토치 기초

텐서에 익숙해져있다가 파이토치로 넘어가려니 아직은 어렵다... +이번 책 끝내고, 나중에 여유 좀 생기면 파이토치 튜토리얼도 봐야지! PyTorch 소개 Introduction|| Tensors|| Autograd|| Building Models|| TensorBoard Support|| Training Models|| Model Understanding 아래 영상이나 youtube 를 참고하세요. PyTorch Tensors: 03:50 에 시작하는 영상을 시청하세요. PyTorch를 import할 것 tutorials.pytorch.kr #1. 파이토치 기초 파이토치 아키텍처 파이토치 API torch : GPU 지원 텐서 패키지 torh.autograd : 자동 미분 패키지. 신경망에 변경이 생길 ..

[알고리즘 구현으로 배우는 선형대수] #4. 선형 시스템

#4. 선형 시스템 정의 선형 방정식이 다수 존재할 때의 선형 방정식의 집합(=연립1차방정식) 특징 오직 하나의 해만 갖거나(직선 교차), 무한개의 해를 갖거나 (직선 일치) 해가 존재하지 않음(평행) 동차 선형 시스템 선형 시스템의 우변(b부분)이 모두 0인 선형시스템 절편이 없으므로, 모두 원점을 지나는 직선이며 이에 오직 하나의 해만 같거나 무한개의 해를 가진다 첨가행렬 선형 시스템의 상수부분만 모아서 행렬 형태로 나타낸 것 (우변은 구분 위해 별도 표기하였으며 행렬곱이 아님) 기본행 연산 첨가행렬을 이용하여 기본행 연산을 수행하면 선형시스템의 해를 구할 수 있음 1. 한 행에 0 이 아닌 상수를 곱한다 (b에 해당하는 행까지 모두) 2. 두 행을 교환한다 3. 한 행에 n을 곱한 후 이를 다른 행..

[알고리즘 구현으로 배우는 선형대수] #3. 다양한 행렬

그동안 텐서플로우, 코세라 머신러닝, 알고리즘과 자료구조 등을 먼저 했다..계획했던 커리큘럼 사이에 껴서 원래 계획이 약 2주간 미뤄졌따 ...🫥 오늘도..달려야한다... #3. 다양한 행렬 전치행렬(transposed matrix) 개념 및 성질 정의 : 기존 행렬의 행과 열을 바꾼 행렬 uij →uji가 된다 성질 (At)t = A (A+-B)t = At+-Bt (a*A)t = aAt (AB)t = BtAt 파이썬 실습 A =[[1,5],[3,4],[6,2]] def transpose(A): n = len(A) #행 row p = len(A[0]) #열 column At=[] for i in range(0,p): #행에 대한 반복 : 전치행렬에서는 행열 위치가 바뀌기 때문에 기존 열의 수인 p 만큼 ..

[자료구조와 알고리즘] #8. 힙(Heap)

#8. 힙(Heap) 힙이란 이진트리의 한 종류 (binary heap) 루트 노드가 언제나 최대값 혹은 최소값을 가짐 (최대힙 : max heap, 최소힙 : min heap) 루트, 부모가 다른 노드들보다 항상 최대/최소 재귀적으로도 어느 노드를 루트로 하는 서브트리도 모두 최대/최소힙 다만 느슨한 정렬 : 왼쪽에 있는 노드가 무조건 숫자가 작거나 무조건 크진 않음 완전 이진 트리여야 함 연산의 정의 (in case of 최대힙) __init__() : 빈 최대 힙을 생성 insert(item) : 새로운 원소 삽입 remove() : 최대 원소 (root node)를 반환 및 삭제 데이터 표현의 설계 배열을 이용한 이진 트리의 표현 (1부터 시작) class MaxHeap: def __init__(..

[자료구조와 알고리즘] #7. 트리

#7. 트리 트리 노드와 엣지를 이용하여 데이터의 배치 형태를 추상화한 자료 구조 용어 정리 노드 (nodes) 간선 (edges) 루트 노드 (root node), 리프 노드 (leaf nodes), 내부 노드 (internal nodes) 부모 (parent) 노드와 자식 (child) 노드 : 루트에 가까울수록 부모, 리프에 가까울수록 자식 노드의 수준 (level) : 루트노드는 레벨0 , 하나씩 내려갈수록 레벨 +1 노드의 차수 (degree) : 서브 트리의 수 (리프 노드로 향하는 간선의 수로 계산) 트리의 높이 (height) 또는, 깊이 (depth) : 최대 레벨 +1 부분 트리 (서브트리; subtrees) : 다른 노드를 루트로 두는 서브트리를 만들 수 있음 이진 트리 (binary..

[자료구조와 알고리즘] #6. 큐

#6. 큐 큐란? 선형 자료구조 선입선출의 성격 (enqueue - dequeue) / 스택과는 반대 (스택 : 후입선출) 큐의 동작 비어있는 큐가 있음 Q = Queue() 데이터원소 A,B...를 큐에 추가 Q.enqueue(A), Q.enqueue(B)... 선입선출로 원소 빼기 r1 = Q.dequeue() , r2 = Q.dequeue() ... 큐의 추상적 자료구조 구현 배열(array) 이용 파이썬 리스트와 메서드 이용 연결리스트(linkedlist) 이용 이전 강의에서 작업한 양방향 연결 리스트 이용 연산의 정의 size() : 현재 큐의 데이터 원소 수를 구함 isEmpty() : 큐가 비어있는 지 판단 enqueue(x) : 데이터원소를 추가 dequeue() : 맨 앞에 저장된 데이터..