스탠포드의 CS229(Autumn 2018) 강의를 들으며 내용정리를 포스팅해보려한다.

 

CS229 강의란?

스탠포드 대학의 머신러닝 강의로, 기계학습 및 통계적 패턴 인식에 대한 강의이다. 

지도학습, 비지도학습, 학습이론, 데이터마이닝 등 기계학습과 관련된 내용을 담고 있다.

더 자세한 강의 소개는 아래 홈페이지를 참고하면 된다.

http://cs229.stanford.edu/

 

CS229: Machine Learning

CS229: Machine Learning (Details for Fall quarter will be updated soon) Instructors Moses Charikar Chris Ré --> Course Description   This course provides a broad introduction to machine learning and statistical pattern recognition. Topics include: super

cs229.stanford.edu

 

머신러닝을 공부하는 사람들 사이에서는 강의 이름은 한 번쯤 들어본 적이 있을 것이다.

그만큼 베이직한 강의이고, 머신러닝에 대해 광범위한 내용을 다루고 있다.

 

필수 요건

강의를 듣는 것은 자유이긴하지만, 기본 지식으로 행렬의 곱, 벡터의 연산 등 기초적인 수학 지식이 있어야한다.

이진트리, 스택 등의 기초적인 컴퓨터 공학 지식도 필요하다. 

만약 이러한 컴퓨터공학분야의 지식이 부족하다면 그 부분을 먼저 공부한 뒤 이 강의를 듣는 것이 좀 더 수월할 것이다.

 

아직 본 강의를 많이 수강하지 않아서 난이도는 잘 모르겠지만, 수학적 지식이 부족하여 망설여진다면 Coursera의 Machine Learning - Andrew Ng 강의를 듣는 것도 나쁘지 않을 것이다. 이 강의는 스터디를 한 번 했었는데, 수학에서 모르는 개념을 알려주어서 수강하기에 괜찮았다. 다만, 수학을 너무 쉽게쉽게 설명하고 넘기셔서 어렵게 느껴지는 부분이 있기도 했다. 하지만 한 번 훑기에 좋은 강의같다.

 

프로젝트

이 수업은 스탠포드 대학교의 강의이므로 과제가 있다. 물론 유튜브로 청강하는 사람들은 과제를 할 필요는 없지만, 스탠포드 학생들의 프로젝트 결과물을 볼 수 있다.

http://cs229.stanford.edu/proj2019aut/index.html

 

CS229: Machine Learning - Projects Fall 2019

Bypassing Censorship Natural Language Siah Yong Tan, Christopher Glenn Laban Cross, Sasankh Munukutla [report] [poster]

cs229.stanford.edu

2018년 가을 과정의 프로젝트는 찾지 못했지만, 위의 링크를 통해 2019년 가을 과정의 프로젝트 결과물을 볼 수 있다. 

아직 읽어보지는 못했지만 결과물의 퀄리티가 좋아보여 혹시 연구에 참고할만한 부분이 있을까하여 훑어보려한다.

 

강의 내용

1. 머신러닝의 정의

아서 사무엘(1959)의 정의: 컴퓨터가 명시적으로 프로그램하지 않아도 학습할 수 있는 능력을 주는 학문 분야

톰 미셸(톰 미치엘)(1998): 작업 T에 대한 경험 E와 측량 P가 있을 때, T의 P가 E에 따라 증가한다면, 프로그램은 학습한다고 할 수 있다.

 

2. 머신러닝

머신러닝에는 

  • 지도 학습 Supervised Learning
  • 비지도 학습 Unsupervised Learning
  • 강화 학습 Reinforcement Learning

이러한 종류가 있다.

각 학습에 대한 내용은 Coursera의 Machine Learning 강의와도 겹치는 부분이 많았다.

1강에서 이론에 대한 설명이 있긴하지만, 기본적인 내용이므로 자세히 정리하지는 않겠다.

출처 https://champ.hackers.com/?c=event&evt_id=19072200

해커스토익에서 첫토익 환급반이 열렸다.

논문 읽으면서 영어 공부가 필요하기도 했고, 해외 인턴십에도 관심이 생겨서 회화도 생각 중이라 

리얼클래스, 야나두 같은 수업들을 계속보다가 

(대학원 졸업을 위해..) 토익을 준비해야해서 해커스, 파고다의 수업들을 비교해보았다.

 

간단하게 정리하자면

해커스의 환급조건 : 100%환급 - 출석 or 780점 이상

파고다의 환급조건: 내가 정한 점수 이상 도달

나는 해커스의 환급 조건이 좀 더 달성하기 쉬울 것 같아서 해커스 토익으로 신청했다.

환급반마다 환급 조건이 다르고, 자신에게 좀 더 수월한 환급조건이 있을 수 있으므로 자세하게 살펴보길 바란다.

 

해커스의 토익+토스+오픽 전 레벨 환급반도 있는데, 첫토익 환급반보다 6만원 정도 비싸다. 

1. 토익 진단고사 결과가 500~600반이었고

2. 환급 실패하면 6만원이나 더 나가니까

550+ 환급반을 신청했다.

 

 

출처 https://champ.hackers.com/?c=event&evt_id=19072200

여러가지 환급반이 구성되어 있는데, 자신의 레벨에 맞춰서 신청을 하면 되겠다.

 

 

결제 후에 마이클래스를 클릭하면 환급반을 바로 수강할 수 있다!

※ 참고로 환급반 시작은 수강시작 이후부터이다!

아래 이미지에서 수강상태를 보면 수강중 이라고 뜨는데, 처음에는 수강예정으로 뜬다.

시작하면 수강중이 된다. 

수강중 부터 출석체크가 시작된다.

환급반 밑에 있는 과정들도 550+환급반에 포함되어있는 과정들이다.

하지만 이 강의들은 들어도 환급반 출첵에는 포함되지 않는 일반 강의 이므로 주의해야한다.

 

환급반에 입장하면 이렇게 달력이 있다. 출석체크를 관리할 수 있어 편리하다.

 

여러 가지 강의가 있는데, 처음에는 '강의신청하기' 라는 빨간 버튼을 눌러서 수강신청을 해줘야한다.

 

아직 교재가 오지 않아서 단어만 들었는데, 단어 강의도 꽤 고퀄리티라 좋다.

진짜 열심히해서 토익따야지(졸업해야지..)

 

환급조건

내가 '잘'하는 것은 못할지언정 열심히, 성실히하는 것은 그래도 좀 한다!

그럼 이런 환급반을 들으며 공부하는 것도 나쁘지 않을 것 같다.

계속 들으면서 중간 후기, 환급 후기도 남길 것이다. 

마지막까지 잘 들어야지!

 

모든 이미지 출처

해커스 토익 https://champ.hackers.com/

 

BEEP! Korean Corpus of Online News Comments for Toxic Speech Detection

Jihyung Moon, Won Ik Cho, Junbum Lee

arxiv.org/abs/2005.12503

 

Abstract

수동적으로 labeld 된 hate speech dataset 이 있는 영어, 독일어, 이태리어에서는 Hate speech detection 연구가 진행되었다. 본 연구에서는, 우리는 처음으로 9.4k의 연예뉴스 댓글에서 모아진 Korean toxic speech data 를 제공한다. 이 데이터셋으로 charCNN, BiLSTM, BERT 모델을 기준으로 성능을 측정해보았다.

 

1. Introduction

한국에서 악성댓글로 인해 자살한 어린 두 명의 연예인이 있었다. 이 사건으로 한국 인터넷 기업 2곳이 댓글 시스템을 모집했고, 지금은 악성댓글을 피할 수 있지만, 근본적인 문제는 아직 풀지 못했다. 우리는 이 social issue 에 대처하기 위해 toxic speech detection 을 위한 최초의 Korean corpus 를 제안한다. 이 데이터셋은 social bias와 hate speech 두 가지 측면에서 annotation 을 진행했다.

다음은 본 연구의 주요 기여점(contribution)이다.

  • 처음으로 hate, bias(편견)에 대한 Korean corpus를 구축하고 배포하였다.
  • 향후 개발을 위해 Kaggle Competition 을 개최하였다.
  • bias(편견)이 hate speech detection 에 도움이 되는 것을 관찰하였다.

2. Related Work

한국어에서 abusive language (비속어, 악성댓글 등)관련 연구는 '용어'(term)의 질적 논의에 초점을 맞춰왔다.

term matching 접근법은 신조어, 다의어 등으로 예측에 한계가 있다. 더 중요한 것은, 모든 hate speech가 비속어를 사용하지는 않는다. 또한, 혐오 표현은 사회적 편견, 맥락 안에 위치한다. 이전연구에서는 주로 성차별적, 인종차별적 용어를 명시적으로 보여주는 텍스트에 관심을 보였다.

본 논문에서는 명시적, 암시적 고정관념을 고려하고 이러한 고정관념이 혐오 발언과 어떻게 관련이 있는지를 면밀히 조사한다.

 

3. Collection

연예 뉴스에서 수집한 comments data 로 Korean Hate Speech corpus 를 구축하였다.

2018. 1. 1 ~ 2020. 2. 24 까지의 23,700 개의 기사에서 10,403,368 개의 댓글을 수집하였다.

그 중 복제된 댓글, 한 단어 댓글(모호한 것 제거를 위해), 100자 이상 댓글(너무 여러 의견을 전하므로)을 제거하였다.

마지막으로 10k의 댓글이 무작위로 선정되었다.

Figure 1

figure 1은 comment 샘플이다. 샘플은 6개의 parts로 구성되어있다.

1. 작성일자

2. 시간

3. maked ID (비식별화된 ID)

4. 내용

5. 답글 수

6. 좋아요/싫어요 수

 

상기 10k댓글과 관련하여 모든 기사에 대해 동일한 점수로 정렬된 상위 100개의 댓글을 모아 2M개의 댓글을 준비하였다. 이 추가 corpus 는 label 없이 배포된다.

 

4. Annotation

32명의 annotator 들이 annotation 을 수행해주었다. 모든 댓글은 다수결 판단을 위해 무작위로 3명에게 주어졌다. annotators 는 각 코멘트마다 2개의 3선지 질문에 답했다.

  1. 어떤 종류의 bias(고정관념, 편견)이 있나요? ①성차별 ②다른 bias들 ③없음
  2. 다음 카테고리 중 해당 댓글에 가장 적절한 카테고리는 무엇인가요? ①Hate ②Offensive ③없음

 

너무 모호할 경우 skip할 수 있었다. 세부적인 지시사항은 appendix.A에 있다.

 

4.1 Social Bias

social bias 란 특정 사회적 특성을 가진 개인/집단으로의 편견이다 (성, 지역, 외모, 나이, 장애, 인종 등등)

우리의 주요 관심사는 성차별(gender-bias)이지만, 다른 이슈들도 과소평가되지는 않았다.

따라서, 우리는 label을 3개로 나누었다. gender bias / other bias / None

gender bias / none 의 binary version 도 공개한다.

label 에 대한 annotator 간의 합의는 크리펜도르프 알파(Krippendorff's alpha)를 기반으로 계산한다.

세 개 클래스의 IAA(inter-annotator agreement)는 0.492로 합의가 원만한 정도였다.

특히 binary case 에서의 IAA 는 0.767로 상당한 합의에 도달한다.

 

4.2 Hate Speech

한국어에서는 악플에 대한 정의가 부족해서 유튜브, 페북, 트위터의 악성댓글 관련 정책을 참고했다. 우리가 정의한 hate speech 코멘트의 정의는 다음과 같다

  • 성, 나이, 외모, 지역, 질병 등에 대한 혐오가 노골적으로 드러나있을 때
  • sexual harassment, humiliation, 그리고 derogation 을 포함하는 개인/집단을 심하게 모욕하거나 공격할 때

모든 악성댓글이 위 조항에 속하지는 않는다. 이보다 덜한 수준의 댓글은 offensive라고 정의하고 다음과 같은 기준을 가진다.

  • 댓글이 의문문이나 반어법을 통해 빈정거릴 때
  • 댓글이 비도덕적이고 무례한 의견을 가진 상태일 때
  • 표현의 자유로서 댓글이 암시적으로 특정 개인이나 집단에 공격을 하고 있을 때

5. Corpus

10k의 corpus 중 합의가 안 맞는 659개는 폐기처분 했다. 최종 dataset 을 train(7,896), validation(471), test(974) 로 나누었다. testset의 label은 공개되지 않는다.

 

hate speech의 존재는 social bias의 존재와 관련있다고 확신한다.

다시말해서, social bias를 포함한 댓글이면 hate나 offensiv speech 일 가능성이 있다.

 

6. Benchmark Experiment

6.1 Models

본 연구에서는 3개의 baseline 분류기를 구현했다. (CharCNN, BiLSTM, BERT) BERT는 koBERT를 사용하였다.

그리고, koBERT의 Tokenizer 를 BiLSTM에 적용하였다. 각 모델에 대한 자세한 configuration은 Appendix.B 에 있다. 그리고 상술한 단어 기반 접근법(term-matching approach)와 비교해봤다.

 

6.2 Results

위 Table 2에서 보듯이 BERT가 최고 성능을 보여주었다. 각 모델은 각기 다른 성능과 다른 특성을 보여주었다.

 

Bias detection

gender-bias detection 은 CharCNN의 성능이 좋았다. 왜냐하면 CharCNN은 어휘적인 요소(he, she, man, woman, ...)를 잘 포착하기 때문이었다. 그러나, 그러한 특성 때문에 CharCNN은 false prediction을 유발하는 특정 용어에 지나치게 영향을 받는다. 

예를 들어

"What a long life for a GAY" 이 문장에서는 bias 를 탐지하지 못했지만

"I think she is the prettiest among all the celebs" 이 문장에서는 'she'의 사용으로 bias 를 포함하고 있다고 예측했다.

CharCNN 은 3개 클래스 분류에서도 BiLSTM보다 성능이 좋았다.

 

BERT는 두 분류 모두에서 성능이 뛰어났따. BERT의 풍부한 어학 지식과 문맥정보가 bias 인지에 도움이되는 것을 알 수 있었다.

세 모델 모두 other bias 에서는 성능을 잘 내지 못했다. 더 좋은 시스템 구성을 위해 label을 non-gender bias로 예측하는 것이 나을 것이다.

ex) 1 - bias or not, 2 - gender bias or not

 

Hate speech detection

hate speech detection 에서는 세 모델 모두 bias 탐지보다 성능이 낮았다. 왜냐하면 hate speech detection 이 보다 어려운 Task 이기 때문이다. 그럼에도 불구하고 BERT는 좋은 성능을 보였다.

hate speech detection 은 의미적 특징도 활용한다고 추측한다. BERT와 term matching 접근법은 false prediction에 대해 얼마나 보상하는지를 성능차이가 설명해준다.

 

7. Conclusions

본 논문에서 우리는 9.4k의 Korean toxic comments corpus 를 구성했다. 우리의 데이터셋은 toxic speech에 대한 연구를 촉진하고 사이버 불링 문제를 개선하는데 도움이 될 것이다. 

 

ISO 690

Moon, J., Cho, W. I., & Lee, J. (2020). BEEP! Korean Corpus of Online News Comments for Toxic Speech Detection. arXiv preprint arXiv:2005.12503.

 

인공지능 모델을 공부하다보면, '선형적인 관계' '비선형적인 관계' 가 자주 보인다.

인공지능 관련 수학으로 가장 기초적인 수학도 Linear Regression. 즉, '선형'대수학이다.

이번 포스팅에서는 이 '선형'이라는 것이 무엇인지 짚고 넘어가려한다.

 

선형적인 관계란?

선형적인 관계란 말 그대로 '직선'의 형태를 생각하면된다.

1차 함수와 같이 직선으로 그려지는 형태를 말한다.

함수 말고도, 위와 같이 선형적인 '관계'를 보일 수도 있다. 순차적으로 이어져서 선으로 표현이 가능한 관계라고 이해하면 되겠다.

그렇다면 비선형적이라는 것은 무엇일까?

 

비선형적인 관계란?

비선형적이라는 것은 nonlinear, 즉 선형적이 아닌 것이다. 여기서 linear의 line 은 직선을 뜻한다.

즉, 직선이 아니라는 것이다. 직선이 아니라면?

그렇다. 곡선이다.

여러 가지 예시가 있겠지만, 이렇게 곡선으로 나타나는 함수를 예로 들 수 있다. (원의 방정식, 지수 함수 그래프 등등을 생각할 수 있겠다.)

이렇게 단어의 뜻을 알고보니, '선형대수학'에서는 무엇을 배우는 것인지도 궁금해졌다.

 

선형대수학이란?

선형대수학을 공부하며 머리가 복잡해져서 생각해보지 못한 부분이었는데, 선형대수학에서는 정말 선형적인 수학만 다루고 있었다.

 

선형대수학(線型代數學, 영어: linear algebra)은 벡터 공간, 벡터, 선형 변환, 행렬, 연립 선형 방정식 등을 연구하는 대수학의 한 분야이다. 현대 선형대수학은 그중에서도 벡터 공간이 주 연구 대상이다. 추상대수학, 함수해석학에 널리 쓰이고 있다.

출처: 위키백과 ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95%EB%8C%80%EC%88%98%ED%95%99

 

위와 같이 선형적으로 나타낼 수 있는 방정식, 공간, 변환 등에 대해서 다루는 분야가 선형대수학이었다.

 

(아래는 몰라도 되는 부분이다.)

출처: https://angeloyeo.github.io/2020/07/24/Jacobian.html

위 그림과 같이 비선형적인 그래프를 국소적으로 관찰하면 선형으로 근사시켜 생각해볼 수 있다고 한다. 위의 개념은 필자도 공부 중인 부분이라 자세히 설명할 수 없지만, 선형적과 비선형적 사이의 관계에 대해서 생각해볼만한 부분이라 덧붙여보았다.

 

참고자료

ko.wikipedia.org/wiki/%EC%84%A0%ED%98%95%EB%8C%80%EC%88%98%ED%95%99

 

선형대수학 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 선형대수학(線型代數學, 영어: linear algebra)은 벡터 공간, 벡터, 선형 변환, 행렬, 연립 선형 방정식 등을 연구하는 대수학의 한 분야이다. 현대 선형대수학은 그

ko.wikipedia.org

angeloyeo.github.io/2020/07/24/Jacobian.html

 

자코비안(Jacobian) 행렬의 기하학적 의미 - 공돌이의 수학정리노트

 

angeloyeo.github.io

m.blog.naver.com/a2zygote/220922530433

 

[결국은어휘력] 선형적 ↔ 비선형적 (나름 뜻 총정리...)

'선형적', '비선형적' 모두 사전에는 안 나오지만 여러 학문 분야에서 흔히 쓰는 용어입니다. 문자적 의미...

blog.naver.com

 

gensim 패키지를 사용한 코드를 실행하다가 아래와 같은 오류가 떴다.

Stackoverflow 를 찾아보니 다음과 같이 해결했다.

import warnings
warnings.filterwarnings(action='ignore', category=UserWarning, module='gensim')

import gensim

stackoverflow.com/questions/41658568/chunkize-warning-while-installing-gensim

신나게 코딩하다가 갑자기 이런 오류가 나왔다.

파일 경로명에 무슨 오류가 생긴 것 같다.

 

찾아보니 \(역슬래시) 표시를 /(슬래시)표시로 바꿔주면 된단다.

 

이렇게 슬래시표시로 바꿔서 오류 해결!!

Jupyter Notebook을 사용하려는 이유

Jupyter Notebook 은 여러모로 편리한 파이썬 실행기이다. 

코딩을 많이 해보신 분이라면 잘 알고 있겠지만, Google Colab 이 주피터처럼 line by line으로 실행이 가능하다.

전문적인 부분에서 어떤 부분이 편하다 어떻다 라고 말하기는 어렵지만, 필자가 사용하는 이유를 간단히 말하면서 글을 시작해보려고 한다.

먼저, 내가 틀린 부분을 잘 캐치해낼 수 있다는 점이다. 

코딩을 많이 해보신 분들이라면 알겠지만, 코드 한 줄 한 줄 print 문을 넣어가며 디버깅해서 오류를 발견할 때가 있다.

print(hello)
print("hello")
print('hello')

이렇게 3줄을 Run 해보는 상황을 가정한다면, 1번 줄에 에러가 있으니 당연히 전체가 실행이 되지 않을것이다.

이런 경우에 각 줄을 따로따로 Run 해보면서 어떤 부분이 에러인지 더 빠르게 캐치해낼 수 있다는 점이 좋았다. 

위 예시는 너무 간단한 예시이지만 코드가 100줄 200줄 넘어가면 어느 부분이, 어느 클래스가 잘못되었는지 캐치하기 어려우므로 정말 도움이 된다.

 

두 번째로는 실행 내용을 바로바로 확인할 수 있다는 것이다.

첫 번째 이유와 비슷하지만, 그래프나 실행결과를 확인하고 남겨두고 싶을 때 유용하다.

예를 들자면, 위와 같이 데이터 파일을 확인해보고 싶을 때 확인하고 그대로 남겨둘 수 있다. 

인공지능을 공부하는 나로서는 데이터 확인, 그래프 확인, numpy 배열 형태 확인 등 확인하고 그 결괏값을 남겨둘 수 있어서 Jupyter notebook을 애용한다.

 

그럼 이제 설치를 시작해보자.

 

Jupyter Notebook 설치 

먼저, Anaconda Navigator를 실행해주자

상단에 Applications on 옆에 드롭다운 메뉴가 있는 것을 확인할 수 있다.

필자는 미리 생성해둔 badText라는 가상 환경에 jupyter notebook을 설치해줄 것이다.

 

빨간펜으로 표시해 둔 위치가 아니더라도 여러 프로그램 중에 Jupyter Notebook을 찾아 아래 install 버튼을 클릭해서 설치한다.

몇 분 정도 기다리면 설치가 완료된다.

 

이제 위와 같이 Lanch라는 버튼이 활성화되어 있을 것이다.

prompt 창을 통해 CLI 방식으로 실행할 수도 있지만, 일단 Navigator에서 실행시켜보자.

 

Jupyter notebook 은 인터넷 창에서 실행되기 때문에 이렇게 어떤 웹페이지 창으로 열 것인지를 묻는 창이 뜰 수 있다.

마음에 드는 것으로 선택한 뒤 확인을 눌러 페이지를 열자.

 

이렇게 열면 웹 페이지에 내 컴퓨터의 폴더 목록이 뜬다. 

이 페이지에서 새 폴더를 만들어 그 안에 새 파일을 만들거나, 다운로드한 파일을 실행시키거나 하면 된다.

(새 폴더나 파일은 왼쪽 상단에 New 버튼을 클릭하면 된다. Upload New (새로고침 버튼) 순으로 버튼이 있다.)

 

이제 프로젝트를 실행해볼 준비는 끝났다!! 

왜 Anaconda 를 설치해야하는가? - 아나콘다를 설치하는 이유

파이썬 프로그래밍을 하다보면 버전이 맞지 않아 업데이트된 버전을 다시 다운로드하기도 하고, 다운그레이드 버전을 설치하기도 한다. 

그러면 파이썬 버전이 충돌해서 오류가 생기는 경우도 있다. 

 

그럴 때 사용하는 것이 아나콘다!

아나콘다에서는 여러 개의 가상환경을 생성해서 가상환경별로 실험 환경을 관리할 수 있게 한다.

만약 여러 개의 파이썬 버전을 사용한다거나, 여러 프로젝트를 동시에 진행하고 있을 때 각 프로젝트마다 가상환경을 만들어 사용할 수 있을 것이다.

또한, 파이썬 버전 충돌이나 어떠한 오류가 발생했을 때 컴퓨터를 포맷할 필요 없이 가상환경을 지우고 다시 생성해서 설치하면 되므로 오류발생 시 좀 더 편리한 환경을 제공한다.

필자는 파이썬 버전 충돌 오류를 너무 많이 만나서 아나콘다를 설치하려고 한다. (최근에는 Google Colab 을 더 많이 사용하다가, 프로젝트 진행으로 새로 환경을 구축하려 한다.)

 

또, 파이썬 모듈 설치시 pip 명령어로 설치해야하는 것들이 있는데, 이 경우에도 conda 명령어로 설치할 수 있다.

큰 차이는 모르겠지만 conda 명령어로 가상환경에 모듈을 설치하면 좀 더 간편한 느낌이 들었다.

 

 Anaconda 설치하기

Google 검색창에 Anaconda 를 검색하면 가장 첫번째로 anaconda 홈페이지가 뜬다.

클릭해서 들어가자.

 

홈페이지에 들어가면 편리하게도 바로 Get Started 버튼이 뜬다. 클릭해서 다운로드하자.

 

클릭하면 위와 같이 행복한 미소의 모델분께서 여러 선택지를 제시해주신다. Download Anaconda installers 를 클릭해서 다운로드 받자.

 

위와 같이 자신의 운영환경에 맞게 Installer 를 다운 받을 수 있다. 필자는 윈도우즈 환경이므로 Windows 에서 64비트 인스톨러를 다운받을 것이다. 

 

클릭해서 다운로드 받으면 위와 같이 뭔가 클릭해야할 것 같은 Buy Now 버튼이 뜨는데 절대 클릭하면 안된다! 다운로드는 끝난 것이다. 인스톨러는 다운로드 되었으므로 웹페이지 하단을 확인하거나, 다운로드 폴더를 확인해보자.

필자는 웹페이지 하단을 확인해보니 다운로드가 다 되어있었다. 이 exe 파일을 실행해서 설치하자.

 

인스톨러를 실행시켰다. Next 를 눌러 다음으로 진행한다.

(여담이지만, 2020. 11 버전이라니 아나콘다 업데이트 언제 되나 했는데 꽤 최근에 한 번 됐나보다.)

 

아나콘다 이용 약관에 동의하겠냐는 화면이다. 동의하지 않으면 넘어갈 수 없으니 I Agree 버튼을 클릭해서 다음 단계를 진행하자.

 

설치 타입을 묻는 창이다. 개인용이면 Just Me 옵션을 선택하고 Next 를 클릭하면 된다. 

All Users 옵션은 잘 모르겠지만, admin 권한을 필요료한다는 것을 봐서는 리눅스환경과 같이 다중 사용자를 위한 옵션인 것 같다.

 

아나콘다의 설치 경로를 설정하는 창이다. 필자는 기본 경로에 설치하려하므로 그냥 Next 를 눌러 다음 단계로 진행한다. 혹시 경로를 변경하고 싶다면 Browse... 을 클릭해 원하는 경로에 설치할 수 있다.

 

아나콘다 옵션을 설정할 수 있는 창이다. 첫번째는 환경변수에 Anaconda3 를 설정할 것이냐 묻는 것이다. Not recommend 라고 비추한다는 말을 강조해놓기도 했고, 필요하면 환경변수에 직접 등록할 수 있으니 패스했다.

그리고 두 번째는 Anaconda3 에 기본 Python 버전을 3.8로 설정하겠냐고 묻는 것이다. 체크가 기본으로 되어있고, 해제하니 저렇게 붉은 글씨로 되었다. 필자는 굳이 3.8로 설정해놓을 필요가 없기도 하고, 3.6을 기본으로 생각하고 있어 일단은 해제해주었다.

옵션 설정이 끝났다면 Install 로 설치를 진행하자.

 

 이후의 창들은 모두 Next 를 눌러 넘어가 주면 이렇게 마지막 창이 뜬다. 두 개의 체크 박스 중에 첫번째는 튜토리얼 에디션인 것 같다. 귀찮으니 체크를 해제해주고, 두번째 박스인 아나콘다 바로 실행만 체크해주고 Finish 버튼을 눌러 실행해보자.

 

Anaconda 를 실행해주는 줄 알았는데, 홈페이지의 교육을 실행해준다는 말이었나보다.

아나콘다에 가입하고, 튜토리얼 영상을 보고 싶다면 위의 양식을 작성해서 로봇이 아님을 증명하고 Reister 를 하면된다.

필자는 창을 닫고 시작메뉴에서 아나콘다를 실행해주었다.

 

아나콘다 설치완료! 이제 실행해보자!

 

이렇게 시작메뉴에서 ana만 쳐도 아나콘다가 뜬다. Anaconda Prompt 는 CMD 창처럼 CLI 방식으로 동작하는 프롬프트창이다. 가상환경이 급하다면 프롬프트창에서 바로 새 가상환경을 activate 하는 방법을 찾으러가면 된다.

블로그 포스팅이니 좀 더 Graphical 한 자료를 위해서 Anaconda Navigator 를 실행해보았다.

 

바탕화면에 이런 그림이 뜨면서 Navigator가 로딩된다.

네비게이터의 메인 창이다. 여기서 필요한 툴이 있다면 Launch 버튼을 클릭해서 설치할 수 있다. (예를 들어 Jupyter)

그리고 위에 줄에 Application on 옆에 드롭다운박스(Dropdown box)에 base(root) 가 있는 것을 확인할 수 있는데, 가상환경을 여러 개 만들면 여기에 가상환경목록이 뜬다.

Environments 도 확인해보자.

 

아직 생성한 가상환경이 없어 base 환경만 확인할 수 있다. 어떤 것이 install 되어있는지를 확인할 수 있다. 

 

오늘은 아나콘다 가상환경 설치를 진행해보았다. 가상환경 생성 및 다른 기능들은 다음 포스팅에서 준비해보겠습니다.

읽어주셔서 감사합니다! 도움이 되셨다면 아래 하트를 눌러 공감 부탁드립니다~

+ Recent posts