/handson-ml2

๐Ÿ’ช ํ•ธ์ฆˆ์˜จ ๋จธ์‹ ๋Ÿฌ๋‹ 2/E ์‹ค์Šต ๋ฐ ๋‚ด๊ฒƒ์œผ๋กœ ๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ

Primary LanguageJupyter NotebookApache License 2.0Apache-2.0

ํ•ธ์ฆˆ์˜จ ๋จธ์‹ ๋Ÿฌ๋‹ ์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ

ํŒŒ์ด์ฌ์„ ์‚ฌ์šฉํ•ด ๋จธ์‹ ๋Ÿฌ๋‹์„ ๊ณต๋ถ€ํ•˜๋Š”๋ฐ ๋„์›€์ด ๋˜๊ธฐ ์œ„ํ•ด ์ด ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ํ•œ๋น›๋ฏธ๋””์–ด์˜ ํ•ธ์ฆˆ์˜จ ๋จธ์‹ ๋Ÿฌ๋‹ 2ํŒ์˜ ์˜ˆ์ œ ์ฝ”๋“œ์™€ ์—ฐ์Šต๋ฌธ์ œ ๋‹ต๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ฑ…์€ ์„œ์ ์—์„œ ํŒ๋งค ์ค‘์ž…๋‹ˆ๋‹ค. Yes24, ๊ต๋ณด๋ฌธ๊ณ , ์•Œ๋ผ๋”˜, ํ•œ๋น›๋ฏธ๋””์–ด

๋…ธํŠธ: 1ํŒ์˜ ๋…ธํŠธ๋ถ์„ ์ฐพ๊ณ  ์žˆ๋‹ค๋ฉด rickiepark/handson-ml์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋™์˜์ƒ ๊ฐ•์˜

์ด ์ฑ…์˜ ๋™์˜์ƒ ๊ฐ•์˜๋ฅผ ์œ ํŠœ๋ธŒ์™€ ์ธํ”„๋Ÿฐ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ˜ผ์ž ๊ณต๋ถ€ํ•˜์‹œ๋Š” ๋ถ„๋“ค์—๊ฒŒ ๋„์›€์ด ๋˜๋ฉด ์ข‹๊ฒ ์Šต๋‹ˆ๋‹ค. :-)

ํ•ธ์ฆˆ์˜จ ๋จธ์‹ ๋Ÿฌ๋‹ 2

์‹œ์ž‘ํ•˜๊ธฐ

์•„๋ฌด๊ฒƒ๋„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ๋…ธํŠธ๋ถ์„ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‚˜์š”?

๋‹ค์Œ ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

๊ฒฝ๊ณ : ์ด๋Ÿฐ ์„œ๋น„์Šค๋“ค์€ ์ž„์‹œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰์ด ๋๋‚œ ํ›„ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ๋ชจ๋‘ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ํ•„์š”ํ•˜๋‹ค๋ฉด ๋‹ค์šด๋กœ๋“œํ•ด์„œ ๋ณด๊ด€ํ•˜์„ธ์š”.

  • ์ถ”์ฒœ ์˜ต์…˜: ๊ตฌ๊ธ€ ์ฝ”๋žฉ(Colab): ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋˜๋Š” ๋ฐ”์ธ๋”(Binder): ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • ๋…ธํŠธ: ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ๋ฐ”์ธ๋”๊ฐ€ ๋น ๋ฅด๊ฒŒ ์ž˜ ์‹คํ–‰๋˜์ง€๋งŒ ์ด ๊นƒํ—ˆ๋ธŒ๊ฐ€ ์—…๋ฐ์ดํŠธ๋˜๋ฉด ๋ฐ”์ธ๋”๊ฐ€ ์ฒ˜์Œ๋ถ€ํ„ฐ ์ƒˆ๋กœ์šด ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‹œ๊ฐ„์ด ์ข€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.
  • ๋˜๋Š” ๋”ฅ๋…ธํŠธ(Deepnote):

์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ๋…ธํŠธ๋ถ์„ ๊ฐ„๋‹จํžˆ ๋‘˜๋Ÿฌ ๋ณด๊ณ  ์‹ถ๋‚˜์š”?

์ฃผํ”ผํ„ฐ ๋…ธํŠธ๋ถ ๋ทฐ์–ด: ๋กœ ์ด ์ €์žฅ์†Œ์˜ ๋…ธํŠธ๋ถ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋…ธํŠธ: ๊นƒํ—ˆ๋ธŒ์˜ ๋…ธํŠธ๋ถ ๋ทฐ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋Š๋ฆฌ๊ณ  ์ˆ˜ํ•™ ๊ณต์‹์„ ์™„์ „ํ•˜๊ฒŒ ํ‘œ์‹œํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค.

๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ์‚ฌ์šฉํ•ด ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‚˜์š”?

๋„์ปค ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์ž์‹ ์˜ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•˜๊ณ  ์‹ถ๋‚˜์š”?

๋จผ์ € ์•„๋‚˜์ฝ˜๋‹ค(Anaconda) (๋˜๋Š” ๋ฏธ๋‹ˆ์ฝ˜๋‹ค(Miniconda)), ๊นƒ์„ ์„ค์น˜ํ•˜์„ธ์š”. ํ…์„œํ”Œ๋กœ์™€ ํ˜ธํ™˜๋˜๋Š” GPU๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด GPU ๋“œ๋ผ์ด๋ฒ„์™€ ์•Œ๋งž์€ ๋ฒ„์ „์˜ CUDA์™€ cuDNN์„ ์„ค์น˜ํ•˜์„ธ์š”(์ž์„ธํ•œ ๋‚ด์šฉ์€ ํ…์„œํ”Œ๋กœ ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”).

๊ทธ๋‹ค์Œ ํ„ฐ๋ฏธ๋„์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ด ์ €์žฅ์†Œ๋ฅผ ํด๋ก ํ•˜์„ธ์š”($ ๊ธฐํ˜ธ๋Š” ์ž…๋ ฅํ•˜์ง€ ๋งˆ์„ธ์š”. ์ด ๊ธฐํ˜ธ๋Š” ํ„ฐ๋ฏธ๋„ ๋ช…๋ น์ด๋ผ๋Š” ๊ฒƒ์„ ํ‘œ์‹œํ•˜๋Š” ๊ฒƒ ๋ฟ์ž…๋‹ˆ๋‹ค):

$ git clone https://github.com/rickiepark/handson-ml2.git
$ cd handson-ml2

๊ทธ๋‹ค์Œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

$ conda env create -f environment.yml # ์œˆ๋„์šฐ์ผ ๊ฒฝ์šฐ environment-windows.yml
$ conda activate homl2 # ์œˆ๋„์šฐ์ผ ๊ฒฝ์šฐ conda activate tf2
$ python -m ipykernel install --user --name=python3

์ด์ œ ์ฃผํ”ผํ„ฐ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค:

$ jupyter notebook

๋” ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์„ค์น˜ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์ž์ฃผํ•˜๋Š” ์งˆ๋ฌธ

์–ด๋–ค ํŒŒ์ด์ฌ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋‚˜์š”?

ํŒŒ์ด์ฌ 3.7์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค. ์œ„์— ์†Œ๊ฐœํ•œ ์„ค์น˜ ์•ˆ๋‚ด๋ฅผ ๋”ฐ๋ž๋‹ค๋ฉด ํŒŒ์ด์ฌ 3.7์ด ์„ค์น˜๋˜์—ˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํŒŒ์ด์ฌ 3์˜ ๋‹ค๋ฅธ ๋ฒ„์ „๋„ ๋Œ€๋ถ€๋ถ„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ผ๋ถ€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํŒŒ์ด์ฌ 3.8์ด๋‚˜ 3.9๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ํŒŒ์ด์ฌ 3.7์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

load_housing_data()๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค

load_housing_data()๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์ „์— fetch_housing_data()๋ฅผ ํ˜ธ์ถœํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. HTTP ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๋ฉด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ๋…ธํŠธ๋ถ์— ์žˆ๋Š” ์ฝ”๋“œ์™€ ๋™์ผํ•œ์ง€ ํ™•์ธํ•˜์„ธ์š”(๋ณต์‚ฌํ•ด์„œ ๋ถ™์—ฌ๋„ฃ๊ธฐํ•ด ๋ณด์„ธ์š”). ๋ฌธ์ œ๊ฐ€ ๊ณ„์†๋œ๋‹ค๋ฉด ๋„คํŠธ์›Œํฌ ์„ค์ •์„ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

MacOSX์—์„œ SSL ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค

์•„๋งˆ SSL ์ธ์ฆ์„ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์Šคํƒ์˜ค๋ฒ„ํ”Œ๋กœ์šฐ ์งˆ๋ฌธ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”). ๊ณต์‹ ์›น์‚ฌ์ดํŠธ์—์„œ ํŒŒ์ด์ฌ์„ ๋‹ค์šด๋กœ๋“œํ–ˆ๋‹ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ /Applications/Python\ 3.7/Install\ Certificates.command์„ ์‹คํ–‰ํ•˜์„ธ์š”(์„ค์น˜๋œ ๋ฒ„์ „์ด ๋‹ค๋ฅด๋ฉด 3.7์„ ๋ฐ”๊ฟ” ์ฃผ์„ธ์š”). MacPorts๋กœ ํŒŒ์ด์ฌ์„ ์„ค์น˜ํ–ˆ๋‹ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ sudo port install curl-ca-bundle๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”.

์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๋กœ์ปฌ์— ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋‚˜์š”?

INSTALL.md ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์•„๋‚˜์ฝ˜๋‹ค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์–ด๋–ป๊ฒŒ ํŒŒ์ด์ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ตœ์‹  ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ•˜๋‚˜์š”?

INSTALL.md ๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๊ธฐ์—ฌ์ž

์œ ์šฉํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์ „๋‹ฌํ•ด ์ฃผ๊ณ  ์ด์Šˆ๋ฅผ ๋“ฑ๋กํ•˜๊ณ  RP์„ ๋ณด๋‚ด์ค€ ๋ชจ๋“  ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ํŠน๋ณ„ํžˆ ์ผ๋ถ€ ์—ฐ์Šต๋ฌธ์ œ์˜ ๋‹ต์„ ๋„์™€์ค€ Haesun Park(๋ฐ•ํ•ด์„ )์—๊ฒŒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ๋˜ docker ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋งŒ๋“ค์–ด์ค€ Steven Bunkley์™€ Ziembla์—๊ฒŒ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์—ฐ์Šต๋ฌธ์ œ ๋‹ต์„ ๋„์™€์ค€ ๊นƒํ—ˆ๋ธŒ ์œ ์ € SuperYorio์—๊ฒŒ๋„ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.