본문 바로가기

분류 전체보기

(20)
6/21 ~ 6/22 선형대수학 공부 기저벡터 standard basis vectors R^n 즉 n차원의 벡터에서 ei를 i번째 값만 1이고 나머지는 0이라고 하자 ex) R2에서 ei e1 = [1 0] , e2 = [0,1] 그럼 얘네를 표준기저벡터라고 부른다. 이유는 Rn에 있는 모든 다른 벡터들이 이들의 선형결합으로 유일하게 표현이 가능하기 때문이다. x = [x1, ... xn] X = x1e1 + x2e2 +... xnen 함수의 변환 **b = f(a) image (상) : a의 이미지 즉 여기서는 b를 의미 공역 : 집합 b 정의역 : a 함수는 이텔릭체로 **T 라고 부른다. TA : R^n -> R^m n차원 벡터에서 m차원 벡터로 벡텨가 변환됨 이때 A라는 함수를 취하는 걸로 이해 m의 벡터 w, n의 벡터 x라고 하고..
파이토치 - AUTOGRAD 자동미분 (torch.autograd) PyTorch 의 autograd 는 신경망 훈련을 지원하는 자동 미분 기능 torch.autograd 동작 방법 텐서에 .requires_grad 속성을 True 로 설정하면, 이후의 텐서 모든 연산들을 추적함 텐서.backward() 를 호출하면, 연산에 연결된 각 텐서들의 미분 값을 계산하여, 각텐서객체.grad 에 저장 .requires_grad_()는 연결된 Tensor 로부터의 계산된 자동미분 값을, 다시 현 텐서부터 시작하도록 만듬 신경망 동작 이해 모델 및 데이터 생성 forward pass 로 입력 데이터를 모델에 넣어서 예측값 계산 예측값과 실제값의 차이를 loss function 으로 계산 backward pass 로 각 모델 파라미터를 loss..
[파이썬] 너비우선탐색(BFS), 깊이우선탐색(DFS) 기존에 배운 순회 트리 순회 : 전위, 중위, 후위 순회 그래프 순회 : BFS, DFS 너비 우선 탐색 BFS(Breadth-First Search)란 너비 우선 탐색이라고도 불리며 그래프에서 시작 노드에 인접한 노드부터 탐색하는 알고리즘입니다. BFS 알고리즘은 언제 사용하면 좋을까요? BFS 알고리즘은 주로 그래프에서 모든 간선의 비용이 동일한 조건에서 최단 거리를 구하는 문제를 효과적으로 해결할 수 있는 알고리즘입니다. 그리고 "미로를 빠져나가는 최단 거리(경로)"를 구하는 문제 등에서 효과적으로 활용할 수 있는 알고리즘입니다. 활용예시 길 찾기, 라우팅 BitTorrent와 같은 P2P 네트워크에서 인접 노드 찾기 웹 크롤러 소셜 네트워크에서 멀리 떨어진 사람 찾기 그래프에서 주변 위치 찾기 네..
[파이썬] 그래프와 순회 노드 간에 연결될 수 있다는 점을 제외하고는 트리와 비슷하며, 루프를 형성할 수도 있다. 트리에서는 노드를 탐색하는 경우 제한이 있지만, 그래프는 루프형성이 가능하기 때문에 다른 범위의 개념으로 필요한 자료구조이다. 예를 들어, object간의 관계를 표현을 할 때 유용하다.(SNS, 도로 상의 차량 검색, 운송시스템) 단방향 그래프와 양방향 그래프 인접 리스트와 인접 행렬 가중치를 표현하면서 노드간의 관계를 나타내준다. class Graph: def __init__(self): self.vertices = { "A": {"B"}, # 여기서 {"B"}가 set의 형태이다. "B": {"C", "D"}, # {"B" : {}}의 형태는 딕셔너리 "C": {"E"}, # 즉, 딕셔너리 안에 set이 있는 ..
[파이썬] 분할 정복 알고리즘 복잡하거나 큰 문제를 여러 개로 나눠서 푸는 방법이다. 특징 : 병렬적으로 문제를 해결할 수 있다.(하지만, 문제를 해결하기위해 문제해결함수가 재귀적으로 호출될 수 있으므로 메모리가 추가적으로 사용될 수 있다.) 퀵정렬 퀵 정렬의 시간복잡도는 최악의 경우 O(n²)이며 평균의 경우 O(nlogn)이다. 최악: 피벗에 의한 원소들의 부분집합이 1개와 n-1개로 분할되는 경우가 반복되는 경우 병합 정렬은 성능의 저하 없이 항상 O(nlogn)이다. 퀵 정렬은 불안전 정렬이고, 병합정렬은 안정 정렬이다. 동일한 값에 대해 기존의 순서가 유지되는 것이 안정 정렬이다. def quick_sort(ARRAY): ARRAY_LENGTH = len(ARRAY) if ARRAY_LENGTH PIVOT] LESSER = ..
[파이썬] 딥러닝에서 하이퍼 파리미터 조정하기 학습률 조정하기 학습률 감소 학습률을 감소시킨다. 이때 원하는 정도로 학습률을 감소시킬 수 있다. 옵티마이저에서 구현이 되있어서 이 옵티아마이저에 파라미터를 조정하면 된다. model.compile(optimizer=tf.keras.optimizers.Adam(lr=0.001, beta_1 = 0.89) , loss='sparse_categorical_crossentropy' , metrics=['accuracy'])학습률 계획법 사진처럼 학습률을 계속 조정하는 것 first_decay_steps = 1000 initial_learning_rate = 0.01 lr_decayed_fn = ( tf.keras.experimental.CosineDecayRestarts( init..
[자연어처리] 단어 자체를 벡터화(Embedding, Word2Vec) word2Vec Word2Vec 에서는 우리가 벡터화하고자 하는 타겟 단어(Target word)의 표현이 해당 단어 주변 단어에 의해 결정됩니다. 단어 벡터를 이렇게 정하는 이유는 분포 가설(Distribution hypothesis) 때문입니다. 분포 가설은 다음과 같습니다. '비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다' I found good stores. I found beautiful stores. 두 문장에서 "good 과 beautiful 은 해당 단어 주변에 분포한 단어가 유사하기 때문에 비슷한 의미를 지닐 것이다" 라고 가정하는 것이 분포 가설입니다. 코사인 유사도 함수 구현하기 import numpy as np def cos_sim(a, b): """ 코사인 ..
[자연어처리] 자연어 처리 기본 추가) append와 extend의 차이점 list 안에 있는 것만 넣을때는 extend를 쓰고 리스트 째로 리스트에 들어갈때는 append이다. https://m.blog.naver.com/wideeyed/221541104629 정규표현식 메서드 re.sub re.sub('정규표현식', '치환문자', 대상문자열) import re text = "I like apble And abple" text_mod = re.sub('apble|abple',"apple",text) print (text_mod) https://ponyozzang.tistory.com/335 추가) join a = ['a', 'b', 'c', &#39..