본문 바로가기

반응형

Programming

(39)
[ML] 다층 퍼셉트론 구현으로 XOR 문제 해결하기 단층 퍼셉트론은 직선으로 구분할 수 있는 문제 해결이 가능한데 XOR 문제의 경우 곡선으로 구간을 나누어야 문제 해결이 가능했습니다. ) 왼쪽 좌표평면과 같은 문제를 해결하기 위해 다층 퍼셉트론을 구현하여 XOR 문제를 확인해보겠습니다. 1. 파이토치로 다층 퍼셉트론 구현하기 필요한 모듈을 임포트합니다. import torch import torch.nn as nn device = 'cuda' if torch.cuda.is_available() else 'cpu' # GPU 연산 확인 # 랜덤시드 고정 torch.manual_seed(777) if device == 'cuda': torch.cuda.manual_seed_all(777) # XOR 문제 입출력 정..
[ML] 단층 퍼셉트론으로 XOR 문제 구현하기 1. 파이토치로 단층 퍼셉트론 구현하기 필요한 도구들을 불러옵니다. import torch import torch.nn as nn import torch.optim as optimGPU 연산이 가능할 경우 GPU 연산을 할 수 있도록 설정해줍니다. 지금은 cpu로 연산을 진행하겠네요. # GPU 연산이 가능할 경우에 GPU 연산을 할 수 있도록 설정 device = 'cuda' if torch.cuda.is_available() else 'cpu' torch.manual_seed(777) if device == 'cuda': torch.cuda.manual_seed_all(777) print(f'연산 장치 : {device}')XOR 문제에 해당하..
[ML] 퍼셉트론(Perceptron) 파이토치를 공부하며 기초 이론 부분을 다시 보고 있는데, 많은 도움이 되는 것 같다. 02. 퍼셉트론(Perceptron) 1. 퍼셉트론(Perceptron) 퍼셉트론(Perceptron)은 프랑크 로젠블라트(Frank Rosenblatt)가 1957년에 제안한 초기 형태의 인공 신경망으로 다수의 입력으로부터 하나의 결과를 내보내는 알고리즘이다. x는 입력값을 의미하며, W는 가중치, y는 출력값을 의미 실제 신경 세포 뉴런에서의 신호를 전달하는 축삭돌기의 역할을 퍼셉트론에선 가중치가 대신함 각각의 인공 뉴런에서 보내진 입력값 x는 각각의 가중치 W와 함께 종작치 인공 뉴런에 전달됨 입력값이 가중치와 곱해져서 인공 뉴런에 보내지고, 각 곱의 전체 합이 임계치(threshold)를 넘으면 종착지에 있는 인..
[ML] 머신 러닝 용어 이해하기 1. 머신 러닝 모델의 평가 검증용 데이터 : 모델의 성능을 평가하기 위한 용도가 아닌, 모델의 성능을 조정하기 위한 용도 (과적합 유무 판단, 하이퍼파라미터 조정) 하이퍼파라미터 : 값에 따라 모델 성능에 영향을 주는 매개변수, 사용자가 직접 정하는 변수 (학습률, 드롭아웃 비율 등) 매개변수 : 모델이 학습하는 과정에서 얻어지는 값 (W, b) 훈련용 데이터로 훈련을 모두 시킨 모델은 검증용 데이터를 사용하여 정확도를 검증하며 하이퍼파라미터를 튜닝(tuning) 함 하이퍼파라미터 튜닝이 끝났다면 검증용 데이터에 대해서도 일정 부분 최적화가 됐기 때문에 테스트 데이터를 갖고 모델의 성능을 평가 2. 분류(Classification)와 회귀(Regression) 2.1. 이진 분류 문제(Binary Cl..
[DL] 단순, 다중 선형 회귀 구현하기 (PYTORCH) 출처 : PyTorch로 시작하는 딥 러닝 입문 주로 케라스를 통한 간편한 딥러닝 모델 구축을 했었는데 트랜스포머 기반 자연어 처리 모델의 경우 대부분 파이토치 라이브러리 기반으로 구축돼있어 공부를 시작하게 되었습니다. 모델 구조를 직접 구축하면서 weight값을 확인할 수 있기 때문에 딥러닝을 본격적으로 시작하기에 좋아보입니다. 케라스의 경우 모듈화가 잘 돼 있어, 클래스를 가져다 쓰는 반면 파이토치의 경우 클래스를 직접 생성하는 코드가 많기 때문에, 파이썬 코딩 실력 향상에도 상당한 도움이 될 것 같습니다. 파일은 출처 내용을 바탕으로 정리하였습니다.
[C] 포인터와 메모리 할당 개념 정리 포인터와 메모리 포인터는 메모리의 특정 위치를 가리킬 때 사용, 기본적으로 정수형으로 된 메모리 주소가 저장돼 있습니다. *를 사용하여 선언하고, 이미 선언된 포인터에 *를 사용하면 포인터에 저장된 메모리 주소에 접근(역참조)하여 값을 가져오거나 저장할 수 있습니다. 자료형 *포인터이름; // 포인터 선언 *포인터; // 포인터를 역참조하여 값을 가져옴 *포인터 = 값; // 포인터를 역참조하여 값을 저장 변수의 메모리 주소를 구할 때는 주소 연산자 &를 사용합니다. &로 구한 주소는 포인터에 할당할 수 있습니다. 즉, 포인터의 변수와 메모리 주소는 자료형이 같습니다. 포인터 = &변수; // 변수의 메모리 주소를 포인터에 저장 그림 포인터와 &,* 연산자의 관계 다음은 포인터에 변수의 메모리 주소를 저..
[ML] lightGBM / XGBoost 파라미터 설명 링크 http://machinelearningkorea.com/2019/09/29/lightgbm-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0/ lightGBM / XGBoost 파라미터 설명 – Go Lab lightGBM에는 무수히 많은 파라미터가 있다. 다만 기억할것은 정답이 없다는것이다. 생각보다 하이퍼파라미터 튜닝에 시간을 많이 쏟지는 않는 이유는, 어차피 ensemble형식이기 때문에 구조자체가 machinelearningkorea.com
[Python] 시각화 관련 참고 자료 링크 https://dacon.io/competitions/official/235590/codeshare/949 코로나19와의 전쟁에서 생명 구하기 - '사망'에 대한 insights 도출 코로나 데이터 시각화 AI 경진대회 dacon.io EDA 공부할 때 참고

반응형