본문 바로가기
728x90

코딩💻16

[Tensorflow] TFRecord 파일은 무엇일까? TFRecord 파일은 TensorFlow에서 사용되는 특별한 형식의 파일로, 데이터를 효율적으로 저장하고 읽기 위해 설계되었습니다. 이 파일 형식은 실제로 '레코드'의 연속으로 구성되어 있으며, 각 레코드는 원하는 데이터를 직렬화한 형태를 포함합니다. 특히, 이미지 데이터의 경우 TFRecord 파일은 이미지 파일 자체를 직접 저장하지 않고, 이미지 데이터를 바이트 스트림으로 변환한 후 이를 저장합니다. TFRecord의 주요 이점 효율적인 데이터 저장 및 접근: 데이터를 직렬화하여 저장하므로 디스크에서 읽기 및 쓰기가 매우 효율적입니다. 이는 큰 데이터셋을 다룰 때 특히 중요합니다. 입출력 속도 개선: 직렬화된 데이터는 입출력(I/O) 과정에서 효율적으로 처리될 수 있어, 대규모 데이터를 다룰 때 학.. 2024. 1. 9.
[Tensorflow] 배치사이즈와 num_steps이란? 적정하게 결정하기 배치 사이즈 결정 방법 배치 사이즈는 모델 학습에서 핵심적인 하이퍼파라미터입니다. 이를 결정하는 방법은 다음과 같습니다: 메모리 용량: 하드웨어의 메모리 한계를 고려하여 배치 사이즈를 조정합니다. 가능한 한 큰 배치 사이즈를 사용하되, 메모리 오류가 발생하지 않는 범위 내에서 결정합니다. 학습 안정성: 큰 배치 사이즈가 학습 안정성에 영향을 줄 수 있으므로, 손실이 안정적으로 감소하는지 확인하는 것이 중요합니다. 실험을 통한 조정: 다양한 배치 사이즈로 실험을 수행하고, 가장 효과적인 결과를 주는 값을 선택합니다. 적절한 num_steps 결정 방법 num_steps는 모델이 학습 과정에서 수행해야 할 총 단계의 수를 나타냅니다. 이를 결정하는 방법은 아래와 같습니다: 손실 감소 추세: 학습 과정에서 손.. 2024. 1. 9.
[Deep Learning] Hyperparameters , Kfold Cross-Validation, Keras tuner 하이퍼파라미터, Kfold Cross-Validation, Keras Tuner Hyperband Tuner 하이퍼파라미터 하이퍼파라미터 조정(Tuning)은 모델 성능에 엄청난 영향을 끼치는 요소이기 때문에 시간이 많이 소요되더라도 반드시 해주어야 한다. 딥러닝에서는 하이퍼파라미터가 굉장히 많다. 튜닝가능한 파라미터 배치 크기(batch_size) 에포크(epochs) 옵티마이저(optimizers) 학습률(learning rate) 활성화 함수(activation) Regularization(weight decay, Dropout 등) 은닉층(Hidden layer)의 노드(Node) 수 Kfold Cross-Validation k-fold cross-validation(k-겹 교차 검증)은 가장 널.. 2022. 11. 23.
[Deep Learning] 학습률, 가중치 초기화, 과적합 학습률, 가중치 초기화, 과적합, L1, L2 학습률(Learning rate) 학습률이란 매 가중치에 대해 구해진 기울기 값을 얼마나 경사 하강법에 적용할 지를 결정하는 하이퍼파라미터이다. 경사 하강법이 산길을 내려가는 과정이라면 학습률은 보폭을 결정하게 된다. 최적의 학습률을 찾는것이 중요하다. 학습률 감소 (Learning rate Decay) 학습률 감소는 Adagrad, RMSprop, Adam 과 같은 주요 옵티마이저에 이미 구현되어 있기 때문에 쉽게 적용할 수 있다. .compile 내에 있는 optimizer= 에 Adam 등의 옵티마이저 적용 후 내부 하이퍼파라미터를 변경하면 학습률 감소를 적용할 수 있다. 학습률 계획법 (Learning rate Scheduling) .experimen.. 2022. 11. 16.
[Machine learning] 릿지회귀 (Ridge regression), One-Hot Encoding, 특성선택 Ridge regression, One-Hot Encoding, 특성선택 Ridge regression 람다값이 커지면 기울기가 0으로 된다. (규제가 쎄면 눕는다) 람다는 하이퍼파라미터. 베타는 회귀계수. 람다 패널티를 높일수록 계수의 값은 줄어든다. 람다 패널티를 주는 이유는 모델의 과적합(overfitting)문제를 줄이기 위함이다. 릿지회귀모델에서 최적 람다값을 찾기 위한 방법으로 RidgeCV 라이브러리를 활용할 수 있다. 릿지회귀모델은 기존의 다중회귀모델을 훈련데이터에 덜 적합되도록 하는 방법이다. One-Hot Encoding 범주형 데이터를 기계가 알아듣도록 수치형으로 바꿔줌. 범주형데이터는 두개로 나뉘어진다. - 명목형데이터, 순서형데이터. 명목형데이터는 카테고리가 다를뿐이다. ex) 색.. 2022. 11. 16.
[Machine learning] 과적합,과소적합, 회귀모델의 평가지표(MAE,MSE,RMSE) 과적합, 과소적합, MAE, MSE, RMSE, R-squared 회귀모델의 평가지표들(evaluation metrics) MAE : 절대평균오차 [Robust하다 : 데이터가 예민하지않고 비교적 안정적인 (민감한 데이터의 반대)] MSE : 오차제곱평균 [좀더 민감하다] RMSE : 오차제곱평균의 제곱근 R-squared : 1에 가까울수록 데이터를 잘 설명하는 모델 과소적합, 과적합 분산-편향은 Trade-off 관계에 있다. 편향이 크면 과소적합(Under-fitting) 과소적합 : 데이터의 특성을 제대로 반영하지못해 일반화가 어려운것 분산이 크면 과적합(Over-fitting) 과적합 : 너무 지나치게 적합 ## 다중선형회귀 예시 코드 from sklearn.linear_model import .. 2022. 11. 16.
[Python] 동적계획법(Dynamic Programming), 탐욕알고리즘(Greedy) 동적계획법(Dynamic Programming), 탐욕알고리즘(Greedy) 동적계획법(Dynamic Programming) 복잡한 문제를 간단한 여러개의 문제로 나누어 푸는 방법 Greedy보다 시간적으로 효율적이지 못할지모르나 결과에 대해서는 효율적인 값을 구할수있다. 문제의 일부분을 풀고 그결과를 재활용하는 방법이다. 하나의 문제를 중복되는 서브문제로 나누어 푸는 방법 분할정복과 유사한 개념 DP는 문제를 분할하는 경우 중복되는 서브문제가 있고, 분할정복은 분할된 서브문제가 독립적이다. 분할정복은 부분 문제간에 서로 중복이 없는 것이고, 동적 프로그래밍은 부분 문제가 서로 중복되어, 상위 문제 해결 시 재활용된다. DP는 서브문제가 같은 경우에 메모이제이션을 활용하여 같은 문제에 대해 해결할 수 있.. 2022. 10. 27.
[Deep Learning] 순전파, 역전파, 손실함수, 경사하강법, 옵티마이저, 배치사이즈 순전파, 역전파, 손실함수, 경사하강법, 옵티마이저, 배치사이즈 신경망의 학습 순서 데이터가 입력되면 신경망 각 층에서 가중치 및 활성화 함수 연산을 반복적으로 수행한다. 1의 과정을 모든 층에서 반복한 후에 출력층에서 계산된 값을 출력한다. 손실 함수를 사용하여 예측값(Prediction)과 실제값(Target)의 차이를 계산한다. 경사하강법과 역전파를 통해서 각 가중치를 갱신한다. 학습 중지 기준을 만족할 때까지 1-4의 과정을 반복한다. 순전파가 모의고사를 치루는 거라고 생각하면 손실함수는 채점을 하는것이고 역전파는 오답노트를 쓰는 것이라고 비유 할 수있다. 순전파 입력층에서 입력된 신호가 은닉층의 연산을 거쳐 출력층에서 값을 내보내는 과정이다. 순전파에서는 입력된 데이터에 가중치-편향 연산을 수행.. 2022. 10. 26.
[Python] BFS와 DFS 정리 BFS, DFS 그래프 탐색 알고리즘이다. 노드를 방문하는데 사용한다. BFS (Breadth First Search) BFT(breadth-first traversal)라고도 불린다. 너비우선탐색 최대한 넓게 보는 것. 잉크가 퍼지는 느낌으로 탐색한다. BFS는 큐의 개념이 사용된다. 장점 노드가 적은 경우 최단경로를 탐색할 때 유용하다. 최단경로를 찾기 적합하다. 찾는 노드가 인접한 경우 효과적이다. 단점 Queue를 이용해노드를 저장하기 때문에 노드의 수가 많을수록 메모리를 많이 소비한다. BFS의 활용 길 찾기, 라우팅 BitTorrent와 같은 P2P 네트워크에서 인접 노드 찾기 웹 크롤러 소셜 네트워크에서 멀리 떨어진 사람 찾기 그래프에서 주변 위치 찾기 네트워크에서 방송 그래프에서 주기 감지.. 2022. 10. 26.
[Deep Learning] 퍼셉트론, 활성화함수, 신경망구조 퍼셉트론, 활성화함수, 신경망구조 퍼셉트론(Perceptron) 신경망을 이루는 가장 기본단위 다수의 신호를 입력으로 받아 하나의 신호를 출력하는 구조이다. 신경망은 퍼셉트론을 여러 층으로 쌓아서 만들게 된다. 인간의 뉴런으로부터 착안하여 생겨난 개념이다. 입력값 - 순입력함수 - 활성함수 - 예측값 형태로 구성되어있다. 단층퍼셉트론은 입력층 - 중간층 - 출력층으로 구성되어있다. 다층퍼셉트론은 중간층이 여러개의 노드로 구성되어있다. 퍼셉트론은 크게 두 부분으로 나뉜다. 가중치(Weight)-편향(bias) 연산 활성화 함수(Activation function) 활성화 함수(Activation Function) 모든 활성화 함수의 공통점은 비선형(Non-linear)이다. 활성화함수가 선형이라면 층을 아.. 2022. 10. 26.
그래프와 인접리스트 인접행렬, 순회(전위,중위,후위) 그래프, 인접리스트, 인접행렬, 순회(전위,중위,후위) 그래프 그래프는 노드간의 관계를 나타낸다. 그래프의 특성은 directed(방향성) 또는 undirected(무방향성) 그래프가 있다. 그래프 용어 루트 노드(root node) : 부모가 없는 노드, 트리는 하나의 루트 노드만을 가진다. 단말 노드(leaf node) : 자식이 없는 노드, ‘말단 노드’ 또는 ‘잎 노드’라고도 부른다. 내부(internal) 노드 : 단말 노드가 아닌 노드 형제(sibling) : 같은 부모를 가지는 노드 간선(edge) : 노드를 연결하는 선 (link, branch 라고도 부름 인접행렬, 인접리스트 다음과 같은 그래프를 인접행렬과 인접리스트로 구현해보자. # 인접리스트 구현 class Graph: def __i.. 2022. 10. 25.
[Machine learning] 단순선형회귀 (Simple Linear Regression), 기준모델 기준모델, 단순선형회귀 기준모델(Baseline Model) 검증 대상모델이 쓸만한 모델인지 판별하는 최소의 기준. 예를들어 5지선다 객관식 20문제에서 모두 3번으로 찍으면 기본적으로 4개는 맞출수 있다. 이것은 성능 20%의 기준모델이다. 이것보다 더 많이 맞추도록 머신러닝을 활용하는 것. 풀고자 하는 문제에 따라 유연하게 사용한다. 회귀 문제에는 보통 평균을 사용. 분류 문제에는 보통 최빈값을 사용. 시계열 회귀문제에서는 이전 타임스탬프 값을 사용 Simple Linear Regression (단순 선형 회귀) 타겟데이터와 특성데이터로 나누어준다. 특성행렬은 주로 X로 표현한다. 타겟 배열은 주로 y로 표현한다. fit() 메소드를 사용하여 모델을 학습한다. 'predict()' 메소드를 사용하여 .. 2022. 10. 23.
728x90