본문 바로가기
반응형

개발 Tools/파이썬_Deep learning & ML24

딥러닝 LSTM (Long Short-Term Memory) LSTM 의미 있는 데이터와 의미 없는 데이터를 구분하고, 정보가 많아지면 기울기의 소실이 생기는데 이를 막기 위해 나온 개념이다. 기본 RNN에서 Cells이라는 개념이 추가된다. Cells란 정보를 임시적으로 저장하는 소자이고 이 정보를 망각, 입력, 출력 게이트를 이용하여 전달한다. 이렇게 정보가 많이 생기니 파라미터가 훨씬 많아지는 단점이 있다. 망각 게이트 시그모이드를 적용하여 결과가 크면 이전의 상태 값을 많이 통과시키고, 작으면 조금만 통과시키는 동작을 하는 부분인데 만약 0이라면 거의 0으로 입력을 받는 즉, 망각하는 동작을 수행한다. 이렇듯 망각 게이트는 과거의 데이터를 얼마나 받아들이냐를 결정한다. 입력 게이트 망각 게이트로부터 들어온 애와 더해주는데 입력단을 얼마나 받아들일지 결정한다.. 2021. 10. 22.
딥러닝 신경망 기본 (신경망, 랭크, 다층 퍼셉트론, 활성화 함수, 역전파) 신경망 신경망 모델은 네트워크라고도 부르며 우리 뇌를 구성하는 뉴런이라는 신경을 모방하여 만들었다. 기본적으로 입력 신호 벡터에 어떤 가중치를 곱하거나 더하거나 비선형 처리를 하여 유용한 정보를 추출해주는 모델이다. 신경망은 입력 데이터에 가중치를 곱하여 중간 출력을 만들고 또 다음 중간 출력을 다시 가중치를 곱하여는 구조를 반복한다. 이런 반복의 마지막층을 출력 계층이라 부른다. 모든 망들이 다 연결돼 있기 때문에 전 결합 망이라고 부른다 계층별 연산은 Y = WX +b의 수식을 따르는데 W는 가중치고 X는 벡터로 들어간다. b는 스칼라 값인 편이(bias)이다. 이를 텐서라고 부른다. 이 텐서에서의 차원을 랭크라고 부른다. 랭크는 아래에서 예를 들어보겠다. 랭크 만약 입력 신호가 200장의 컬러 이미.. 2021. 10. 16.
머신러닝 앙상블 배깅(Bagging), 랜덤 포레스트(random forest) 배깅(Bagging) 배깅이란, 보팅과 다르게 서로 같은 알고리즘의 분류기 조합으로 이루어진다. 간단히 예를 들어보면 결정 트리 알고리즘으로만 이루어진 분류기를 사용한다는 말이다. 이때 데이터의 중첩을 허용한다. 무슨 말이냐면, 예를 들어 0부터 5까지 데이터가 있는데 3개의 분류기를 만든다고 가정하자. 그럼 우린 [0,1,2,3,4,5] 중에 6개의 데이터를 가진 분류기를 3개 만들어야 되는데. 분류기 1의 데이터는 [0,0,3,4,5,5] 분류기 2의 데이터는 [0,1,2,3,4,5] 분류기 3의 데이터는 [0,1,1,2,4,5] 이런 식으로 개별 데이터의 중첩을 허락한다는 의미다. 대표적인 배깅 방식은 랜덤 포레스트이다. 따라서 랜덤 포레스트를 예로 들어보겠다 파라미터 n_estimators -결정.. 2021. 8. 30.
머신러닝 앙상블 보팅(Voting) 앙상블 학습은 보팅, 배깅, 부스팅 등 여러 기법이 있다. 그중에 보팅 기준으로 공부해보겠다. 보팅은 기본적으로 여러 개의 분류기를 사용하여 각각의 분류기 결과를 투표하여 예측을 한다. 보팅(Voting) 보팅이랑, 서로 다른 알고리즘을 가진 분류기의 조합이다. 무슨 말이냐, 여기서 알고리즘이란 우리가 흔히 알고 있는 결정 트리나, knn, 로지스틱 같은 걸 의미한다. 이렇게 다른 알고리즘을 사용하여 분류기를 조합한다. 보팅에는 하드 보팅과 소프트 보팅이 있다. 하드 보팅이란, 각각 분류기의 결괏값 중 가장 많은 걸 따른다. 즉, 다수결의 원칙을 따른다. 예를 들어 5개의 분류기 중에 3개가 "사람"이라 판단했고 2개가 "원숭이"이라고 판단했다면 최종 결론은 "사람"으로 내린다. 소프트 보팅이란, 분류기.. 2021. 8. 6.
머신러닝 결정트리 (지니계수, 정보 이득 지수, min_samples_split, min_samples_leaf, max_features, max_depth, max_leaf_nodes, graphviz) 결정 트리는 하나의 스무고개 같은 느낌이다. 하나하나 조건에 맞게 데이터를 나눈다. 한번 나눌 때마다 최대한 많이 나누야 적게 나누고 원하는 결과를 빨리 얻을 수 있다. 스무고개에서 20번 다 물어보고 맞추는 거보다. 10번째에 맞추는 게 더 빠르기 때문이다. 조금 다르게 예를 들면 0~100 사이의 숫자를 맞출 때 만약 정답이 32라 하면, 우린 첫 번째로 50보다 큰지 작은지 물어보는 게 합리적이다 생각한다. 10보다 큰지 작은지 묻는다면 도박을 하는 것과 같다. 이처럼 결정 트리에도 분류하는 방법이 있는데 기준은 2가지 방법이 있다. 지니 계수 첫번째로 지니 계수를 이용한다. 지니 계수란, 불평등 지수를 나타내는데 0~1 사이의 값으로 평가된다. 0이면 가장 평등하고 1은 불평등함을 나타낸다. 다시.. 2021. 8. 2.