목록전체 글 (768)
우노
파라미터와 하이퍼 파라미터는 명확히 다른 개념입니다. 하지만 많은 사람들이 두 단어를 혼용해서 쓰고 있습니다. 파라미터와 하이퍼 파라미터의 차이에 대해 알아보겠습니다. 파라미터 (Parameter) 파라미터는 모델 내부에서 결정되는 변수입니다. 예 weight coefficient (가중치 계수) bias (편향) weight coefficient, bias와 같은 파라미터들은 모델 내부에서 데이터를 통해 구해집니다. 하이퍼 파라미터 (Hyper parameter) 하이퍼 파라미터는 모델링할 때 사용자가 직접 세팅해주는 값을 뜻합니다. 예 learning rate epoch iteration 모델링을 할 때, 사용자가 직접 세팅해야 하는 값은 상당히 많습니다. 그 모든 게 다 하이퍼 파라미터입니다. 하이..
심층신경망을 구현하기 위해선, Weight matrix, Layer 간의 정확한 dimension 파악이 중요하다. 심층신경망 예 W는 Weight matrix, L은 Layer이며 구성 요소는 다음과 같다. Input x1, x2 W1, W2, W3, W4, W5 L1 (유닛 3개), L2 (유닛 5개), L3 (유닛 4개), L4 (유닛 2개), L5 (유닛 1개) Output yhat Weight matrix dimension을 구하는 공식은 다음과 같다. Wi == ( L i 의 유닛 개수, L i-1 의 유닛개수 ) W3 == ( L3 의 유닛 개수, L2 의 유닛개수 ) == (4, 5) 참고로, 역전파 시 가중치 업데이트 공식은 W - α * dw 를 사용하기 때문에 W와 dw의 dimens..
정규표현식이란? 정규 표현식(regex)은 특정한 규칙을 가진 문자열 검색 및 치환에 사용됩니다. 정규표현식은 컴파일 설정과 문자열 검색 및 치환 설정을 통해 사용할 수 있습니다. 간단한 사용 예제 import re # 탐색할 문자열 sentence = "123 456 789" # 컴파일 설정 (연속된 숫자를 검색) rule = re.compile('[0-9]+') # 해당 컴파일 설정 규칙을 사용해, 문자열 탐색 result = rule.findall(sentence) # 결과 출력 print(result) 컴파일 설정 방법 re.compile() 을 사용해 어떤 규칙을 가지는 문자열들을 검색 및 치환할 건지 설정할 수 있습니다. import re # 탐색할 문자열 sentence = "..
활성화 함수의 역할 딥러닝 네트워크에서는 노드에 들어오는 값들을 곧바로 다음 레이어로 전달하지 않고, 주로 비선형 함수를 통과시켜 전달한다. 이때 사용하는 함수를 활성화 함수(Activation Function)라고 부른다. 여기서 주로 비선형 함수를 사용하는 이유는, 선형함수를 사용할 시 층을 깊게 하는 의미가 줄어들기 때문이다. 예를 들어, 선형함수 h(x)=cx 를 활성화함수로 사용하는 3-Layer 네트워크가 있다고 가정해보자. 해당 네트워크를 식으로 나타내면 y(x)=h(h(h(x))) 가 된다. 이는 실은 y(x)=c^3x 와 똑같은 식이기 때문에, 결국 하나의 layer로 깊은 layer를 표현 할 수 있다는 것이다. 즉, linear한 연산을 갖는 layer는 수십개 쌓아도, 결국 하나의 ..
정의 Ground-truth는 학습하고자 하는 데이터의 원본 혹은 실제 값을 의미합니다. 예제 위 사진은 표지판을 감지하여 이를 경계 상자(Bounding box)로 표현한 것으로 초록색 상자가 Ground-truth, 빨간색 상자가 딥러닝 모델이 예측하여 표시한 부분입니다. Ground-truth와 가장 가까운 경계 상자를 표현한 모델이 객체를 잘 감지한 딥러닝 모델이라고 할 수 있습니다. 위 문제에서는 딥러닝 모델의 성능을 확인하기 위해, IoU(Intersection over Union) 라는 공식을 사용합니다. IoU 공식은, Ground-truth 경계상자와 예측된 경계상자가 겹치는 부분의 너비를, 두 경계상자가 사진에서 차지하는 너비로 나눈 값입니다. 위와 같은 식을 적용한다면 다음과 같이 딥..
간단한 설명 딥러닝 알고리즘은 본질적으로, 많은 양의 단순 사칙연산(행렬 곱셈 등)을 수행한다. GPU 는 이러한 단순 사칙연산(행렬 곱셈 등)에 특화되어 있다. 단순 사칙연산은 병렬화가 아주 쉽기 때문에, GPU 를 통해 한꺼번에 여러 코어에서 계산이 가능하다. 하지만, GPU 는 복잡한 연산은 거의 못하며, 복잡한 연산은 CPU 가 유리하다. 따라서, 딥러닝 시 GPU 를 사용하면 보다 효율적으로 최적화 할 수 있다. 자세한 설명 산술논리연산장치(ALU)는 산술연산을 진행하는 장치이다. CPU 에는 제어장치(CU)가 존재하는 대신, 산술논리연산장치(ALU)가 1 개 뿐이다. 반면에, GPU 는 산술논리연산장치(ALU)가 여러 개이다. 따라서, 많은 양의 단순 사칙 연산을 수행하는 딥러닝에서는, GPU..
머신러닝이란? 알고리즘 기반으로 데이터를 학습 및 예측한다. 데이터 입력 과정에서 인간이 직접 개입해, 입력 데이터를 컴퓨터가 인지할 수 있는 데이터로 변환하고 데이터별 특징을 직접 추출해야한다. 딥러닝이란? 인공신경망 기반으로 데이터를 학습 및 예측한다. 인공신경망을 통해, 데이터 자체를 스스로 학습하기 때문에 인간의 개입이 필요 없다.
R dataframe을 원하는 크기로 slice하는 방법 output
Sklearn cross_val_score() 사용 시, 이미 존재하는 많은 scoring 방법들을 사용할 수 있지만 경우에 따라 직접 scoring을 만들어 사용하고 싶을 때가 있다. 이 때, 다음과 같이 Custom Scoring을 만들어 사용할 수 있다. Custom Scoring 함수 생성 from sklearn.metrics import r2_score, mean_squared_error def mean_absolute_percentage_error(y_test, y_pred): y_test, y_pred = np.array(y_test), np.array(y_pred) return np.mean(np.abs((y_test - y_pred) / y_test)) * 100 def custom_sc..
에러 WARNING: src/objective/regression_obj.cu:152: reg:linear is now deprecated in favor of reg:squarederror. 해결 방법 회귀 모델 매개 변수 objective = 'reg:lineaqr' 을 'reg:squarederror'로 변경 예 xg_reg = xgb.XGBRegressor(objective='reg:squarederror', colsample_bytree = 0.3, learning_rate = 0.1, max_depth = 5, alpha = 10, n_estimators = 10)