텐서플로우를 통한 선형회귀 예제입니다. 사실 처음 해볼때 이럴꺼면 사이킷런을 쓰는게..? 라는 생각을 했는데, 좀더 복잡하고 큰 데이터를 다루거나 복잡한 모형을 다룰 때 굉장히 효율적일거라는 생각이 들더군요. 좋은 경험이었습니다. 먼저 데이터를 생성해주고 단순선형회귀 식의 Weight와 bias를 설정해줍니다.# datax_train = [1,2,3]y_train = [1,2,3]# random_normal은 우리가 아직 W, b를 모르기 때문에 rank가 1인 값을 랜덤하게 넣어주는 것.W = tf.Variable(tf.random.normal([1]), name = 'weight')b = tf.Variable(tf.random.normal([1]), name = 'bias') 여기서 Variable는..
🌞 Statistics for AI/Deep learning
Tensorflow 텐서플로우는 Google Brain 팀에서 개발한 오픈 소스 프레임워크입니다. 복잡한 데이터 흐름 그래프(Data Flow Graph)를 기반으로 딥러닝 모델을 구축하고 훈련할 수 있도록 하는 프레임워크로 다양한 기계 학습 작업을 지원하고 여러 분야에서 사용되고 있습니다. 아마 딥러닝을 하지 않더라도 머신러닝에 관심이 있는 분이라면 한번쯤 들어보셨을 것 같습니다. 저도 계속해서 듣기만했지 처음으로 써보려고 합니다. TensorFlow 설치pip install --upgrade tensorflow# 버전 확인import tensorflow as tftf.__version__ 개념 1. 텐서(Tensor) : 텐서플로우에서 데이터를 나타내는 기본 단위라고 볼 수 있습니다. 다차원 배열로..
📌 활성화 함수(Activation Functions)?? 머신 러닝과 딥러닝에서, 특히 딥러닝에서 활성화 함수는 신경망의 핵심 요소 중 하나로, 모델이 복잡한 문제를 해결할 수 있도록 합니다. 활성화 함수는 신경망의 각 뉴런에 들어오는 입력 신호의 총합을 출력 신호로 변환하는데 사용합니다. 이러한 함수들은 비선형 함수로 머신러닝의 트리 기반 모델에서 분류를 한 후 나오는 출력값을 확률로 변환하는데에도 사용됩니다. 크게 시그모이드 함수(Sigmoid function), 소프트맥스 함수(Softmax functions), ReLU 함수(Rectified Linear Unit functions), Leakly ReLU를 알아보겠습니다. 이 외에도 많은 활성화 함수가 있으며 분석에 있어서 데이터의 특징이나 분..
📌 경사 하강법 최적화 알고리즘 경사 하강법 최적화 알고리즘의 변형들로, 신경망의 학습 속도와 성능을 향상 시키기 위해 고안되었다. ◼️ Momentum method 모멘텀을 사용하는 확률적 경사 하강법은 각 반복에서의 업데이트인 $\Delta w$ 을 기억하고, 다음 업데이트를 그래디언트와 이전 업데이트의 선형 조합으로 결정합니다. 이전 단계에서의 속도(momentum)을 사용해 다음 단계의 속도를 결정하면서 최적화를 수행하는 것입니다. $$ \begin{align} \Delta \textbf{w}^{r+1} &= \alpha \Delta \textbf{w}^r - \eta \nabla E_i ( \textbf{w}^r) \\ \textbf{w}^{r+1} &= \textbf{w}^r + \Delta\..
뉴럴네트워크에서 또한 정규화가 이루어집니다. 추가로 과적합을 피하기 위한 다른 방법인 드롭아웃에 대해 알아보겠습니다. 📌 정규화(Regularization) 정규화를 통해 모델 복잡성을 제어하여 과적합을 방지하고자 하는 목적입니다. 어느 모델과 마찬가지로 L1, L2 Regularization이 존재합니다. 손실 함수에 모델 파라미터의 크기에 대한 페널티를 추가하는 방식입니다. L1 정규화는 가중치의 절대값에 비례하는 페널티를 더하고, L2 정규화는 가중치의 제곱에 비례하는 페널티를 더합니다. 이를 통해 모델이 특정 가중치에 지나치게 의존하지 않도록 제한합니다. $$ \text{cost function = loss + Reguralization term} $$ 정규화 항이 추가되면 가중치 행렬 값이 감소..
이번 포스팅은 경사 하강법입니다. 굳이 Deep learning 카테고리에 추가 안 해도 됐지만.. 뉴럴 네트워크와 연결되니 여기에 포스팅하는 걸로! 📌 Batch Gradient Descent(배치경사하강법) 앞선 포스팅에서 뉴럴네트워크에 대해 알아보았는데, 경사하강법이 등장했었습니다. 배치 경사 하강법은 신경망에서 사용되는 최적화 알고리즘 중 하나로, 학습 프로세스 에서 모델 파라미터를 업데이트하는데 전체 훈련 데이터 셋을 사용합니다. 전체 훈련 데이터셋을 사용하여 비용함수의 기울기를 모델 파라미터에 대해 계산합니다. 이때 에포크라는 것이 등장하는데 이 에포크란 전체 훈련 데이터셋을 한 번 훑는 것이라고 생각하시면 되겠습니다. 업데이트 규칙으로서 모델 파라미터는 에포크 마다 한 번 업데이트됩니다. 장..
📌 NN(Neural network) 뉴럴 네트워크는 통계적인 모델링이나 패턴 인식에 적용되는 기계 학습(Machine learning)중 하나입니다. 기본 원리는 우리의 뉴런과 같습니다. 뉴런의 작동방식에 영감을 받아 만들어진 모델로, 여러 계층의 뉴런들이 서로 연결되어 입력(input)에서 출력(output)으로의 복잡한 mapping을 학습합니다. 각 뉴런은 입력을 받아 가중치를 적용하고 활성화 함수를 통과하여 이의 결과를 다음 뉴런으로 전달합니다. 신경망 구조로서 뉴럴 네트워크를 입력 계층, 은닉 계층, 출력 계층으로 구성됩니다. 각 계층은 여러 뉴런으로 이루어져 있고, 이 신경망의 깊이(은닉 층의 개수), 그리고 너비(뉴런의 개수)를 결정하는 것이 point라고 할 수 있습니다. ◾ Feed F..