전체 글 17

[Conda][아나콘다] Conda 설치 및 주요 명령어

최근 새로운 conda 버전으로 환경을 만들었는데 저번 cuda 버전 충돌이 일어나는 오류가 발생하였다.다시 일일이 conda 환경을 만들거나 지우기 위해서 검색하는 것이 너무 번거로워 이 기회에 정리하게 되었다.1. Conda 설치제일 쉽다. 해당 링크로 들어가서 그냥 설치만 하면 된다.https://www.anaconda.com/download/success Download Now | AnacondaAnaconda is the birthplace of Python data science. We are a movement of data scientists, data-driven enterprises, and open source communities.www.anaconda.com 2. 콘다 명령어 정리..

Machine Learning 2024.08.26

[머신 러닝] 가중치 (W), 편향 (Bias)

인공지능을 공부하면 처음 가중치 (W), 편향 (Bias)에 대한 단어가 계속 나오는데이번에는 가중치와 편향에 대해서 알아볼까한다.가중치 (Weight)각 입력 신호가 결과 출력에 미치는 중요도를 조절하는 매개 변수 → 입력 값에 곱해지는 수활성화 함수에 따라 기울기를 증가시킴 (기울기가 커질수록 모델에 더 많은 영향을 미치게 됨)처음 들어온 데이터 (입력층)에서 다음 노드로 넘어갈 때 모두 같은 값이면 계속 같은 값이 나오기 때문에입력 값에 곱해주면서 비중을 두고 다음 은닉층 (hidden layer)로 전달해주는 것이 목표이다. 편향 (Bias)뉴런의 활성화 조건을 결정해주는 매개변수 → 활성화 함수에서 설정된 임계값을 얼마나 쉽게 넘게 할 것인지 결정(편향이 커질수록 그만큼 활성화 함수의 임계값을 ..

[머신 러닝] 퍼셉트론과 인공 신경망

최근 교내 학부연구생을 하고 관련 프로젝트들을 진행하느라 블로그 작성이 뜸해졌다.다시 기초 개념을 정리하면서 배웠던 내용들을 다시 상기할까 한다.이번에는 머신 러닝이 처음 나올 때의 개념들을 하나씩 설명하려고 한다.퍼셉트론과 뉴런뉴런은 우리 뇌속에 있는 형태. 퍼셉트론은 이를 수학적으로 모델링한 것이다.결국 하나하나 노드로 되어 있는 것이 퍼셉트론이고 뉴런이라고 할 수 있다. 신경망가중치 설정을 사람이 계속 해야되는 문제가 있다.인간의 뇌와 유사하게 뉴런들을 연결하는 형태를 신경망이라고 부른다.가중치는 추후에 다뤄보도록 하겠다. 그냥 Neural Network도 사람의 뇌처럼 신경망으로 구성되어 있다고 보면 된다. 인공 신경망의 종류일반적으로는 DNN, CNN, RNN으로 구분된다.이정도만 알아도 인공 ..

GPU를 local에서 사용하자 - CUDA, PyTorch 설치 및 버전 호환

논문을 살펴보고 해당 demo를 local에서 돌려보고 싶을 때 필요한 PyTorch 버전과 CUDA 버전이 다르다는 것을 확인했다.그리고 무엇보다, 우리가 쓰고 있는 컴퓨터의 GPU을 사용하기 위해서는 CUDA와 PyTorch를 사용해야 하며, 둘의 버전이 서로 호환되어야 사용할 수 있다. 관련 자료들을 참고하면서 도움을 받긴 했지만 내용들이 너무 분리되어 있어서 하나로 정리하고 이 글을 쓰게 되었다. PyTorch GPU 호환 확인이게 제일 중요하고, 사실 이게 되면 local GPU를 바로 사용 가능하다는 뜻이다.(근데, 일반적으로는 처음일때는 CUDA가 설치되어 있지 않은 상황이라 안될 것이다.)python -c "import torch; print(torch.cuda.is_available())..

Machine Learning 2024.08.09

[머신 러닝] 선형 회귀

선형 회귀 (linear regression) 이란어떤 독립 변수와 종속 변수들과의 관계를 선형 관계 (1차 함수)로 가정해서 모델링하는 지도학습 알고리즘이다.그리고 변수의 개수에 따라 단순 선형 회귀, 다중 선형 회귀로 분류할 수 있다.아래의 식은 Linear Regression 선형 관계식의 기본형이다.$$ y = \beta_{0} + \beta_{1} x_{1} + \beta_{2} x_{2} + \epsilon $$y: 종속 변수, βk :회귀 계수, Xk:독립 변수, ε: 오차항(모델으로 설명할 수 없는 부분)X1까지만 존재하면, 단순 선형 회귀 분석이라 할 수 있다. Linear Regression의 Residual(잔차)종속 변수는 관찰의 결과에서 나오는 확률 변수이다. 이에 오차를 포함한다..

[머신 러닝] 회귀와 분류 차이

지도 학습과 비지도 학습의 차이회귀와 분류를 알아보기 전에, 지도 학습과 비지도 학습의 차이를 알아보아야 한다.회귀와 분류는 지도 학습 안에 속해있기 때문이다. 지도 학습말 그대로 정답이 있는 데이터를 활용해서 데이터를 학습하는 것이다.입력 값 (X data)이 주어지면 입력 값에 대한 Label (Y data)를 주어 학습시키는 방식이다. 비지도 학습지도 학습과 달리 정답 라벨이 없는 데이터를 비슷한 특징끼리 군집화해서 새로운 데이터에 대해 결과를 예측하는 방법이다.라벨링 되어 있지 않은 데이터를 넣는 것이므로 학습해야 될 분량이 조금 더 많아질 수 밖에 없다.지도 학습에서 적절한 피처를 찾아내기 위해 전처리 방법으로 비지도 학습을 이용하기도 한다.아래는 지도학습과 비지도학습의 대표적인 알고리즘을 정리..

딥러닝과 머신러닝의 차이

인공지능에 대한 관심최근 많은 개발자들이 인공지능을 활용하여 필요한 코드를 수정하거나 제작한다.그리고 다양한 기업들도 인공지능 경쟁에 뛰어들고 있다. 이제는 인공지능과 함께 사는 세상이 된 것 같다.필자도 이에 따라 머신러닝에 대한 기초부터 쌓아놓아야 실제로 활용할 때 큰 도움이 된다고 느꼈다.앞으로 머신러닝에 대한 내용을 정리할 것이고, 주로 나도코딩의 머신러닝, 그리고 밑바닥부터 시작하는 딥러닝,스탠포드의 머신러닝 정규강좌 (CS224N)을 통해 많이 참고할 것이다. 딥러닝과 머신 러닝의 차이그렇다면 딥러닝과 머신러닝 차이는 무엇인가? 제일 근본적인 것은 컴퓨터가 인간의 뇌처럼 스스로 학습하는 것이 딥러닝이라 할 수 있다.인간의 뇌처럼 신경망이 이루어져서 학습이 되는지 안되는지의 차이라고 볼 수 있다..

[SQL] SQL 쿼리 작성과 실행 순서

일반적인 SQL 작성과 실행 순서SQL의 작성 순서1. SELCET2. FROM3. WHERE4. GROUP BY5. HAVING6. ORDER BY7. LIMIT SQL의 실행 순서1. FROM : 어떤 테이블을 가져올 건지2. WHERE : 어떤 ROW를 가져올 건지3. GROUP BY : 어떤 그룹으로 묶을 건지4. HAVING : 어떤 조건의 그룹을 가져올 건지5. SELECT : 어떤 컬럼들을 가져올 건지6. ORDER BY : 어떻게 정렬을 할건지7. LIMIT : 최종 출력할 ROW중 어떤 ROW를 설정한 건지 주로 쓰는 SQL 작성과 실행 순서FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY1. FROM : 조회 테이블을 조회한다.2. WHERE..

[책 리뷰] 이렇게 살아도 되는 걸까

https://search.shopping.naver.com/book/catalog/32493367975 이렇게 살아도 되는 걸까 : 네이버 도서 네이버 도서 상세정보를 제공합니다. search.shopping.naver.com 내 자신에 대해 고민을 한 적 있나? 자신만의 비전을 가지고 나아가는 사람들을 보고 있으면, 나는 항상 '나도 무언가를 해야겠다'라는 생각을 할 때가 있다. 하지만, '내가 정확히 뭘하고 싶은데?' 라고 물으면 그것에 대해 답하는 건 너무 힘든 것 같다. 나는 과연 내 자신에 대해 얼마나 알고 있을까. 이런 고민을 하면서 우연히 도서관에서 이 책을 보게 되었고, 일절 고민없이 바로 집어서 읽게 된 책이었다. 프롤로그부터 9장까지 총 10장으로 구성되어 있으며, 그 중에서 인상깊게..

기타/책 리뷰 2024.02.07

[14928] [Java] 큰 수 (BIG)

https://www.acmicpc.net/problem/14928 14928번: 큰 수 (BIG) 첫째 줄에 제연이가 가장 좋아하는 수 N이 주어진다. (N ≤ 101,000,000) www.acmicpc.net 추가 개념 해당 문제는 "나머지 연산 분배 법칙"이라는 것을 사용해야 한다. 그 근거로는, 단순히 BigInteger 클래스를 사용하면 시간 초과가 나기 때문. 분배법칙은 아래와 같다. (A + B) % N = ((A % N) + (B % N)) % N 나머지 연산 분배 법칙의 예시는 아래와 같다. (그림 출처) : https://blex.me/@laetipark/%EB%B0%B1%EC%A4%80bojjava-14928%EB%B2%88-%ED%81%B0-%EC%88%98-big 필자는 이 법칙..