Хэрэв та үүнийг уншиж байгаа бол гүнзгий суралцах аялалаа аль хэдийн эхлүүлсэн байх нь дамжиггүй. Хэрэв та энэ сэдвийг шинээр сонирхож байгаа бол гүнзгий суралцах нь хиймэл мэдрэлийн сүлжээ гэж нэрлэгддэг тархитай төстэй өвөрмөц бүтцийг ашиглан бодит ертөнцийн асуудлуудыг шийдвэрлэх хүнтэй төстэй компьютер бүтээх нэмэлт хэрэгсэл юм.
Эдгээр дизайныг боловсруулахад туслахын тулд Google, Facebook, Uber зэрэг технологийн томоохон компаниуд Python-ийн гүнзгий сургалтын орчинд зориулсан төрөл бүрийн хүрээг боловсруулж, янз бүрийн мэдрэлийн сүлжээг ойлгох, үүсгэх, сургахад хялбар болгосон.
Гүнзгий сургалтын хүрээ гэдэг нь эрдэмтэн судлаачид болон өгөгдөл судлаачдын гүн гүнзгий сургалтын загварыг бий болгох, сургахад ашигладаг програм хангамжийн хэсэг юм.
Эдгээр хүрээний зорилго нь хувь хүмүүст арын техникийг ойлгохгүйгээр загвараа сургах боломжийг олгох явдал юм. гүн гүнзгий суралцах, мэдрэлийн сүлжээ, машин сургалт.
Өндөр түвшний програмчлалын интерфейсээр дамжуулан эдгээр хүрээ нь загвар бүтээх, сургах, баталгаажуулах барилгын блокуудыг өгдөг.
Бид өргөн хэрэглэгддэг PyTorch-ийн хувилбар болох TensorFlow, Keras, Apache MXNet, Microsoft CNTK, DeepLearing4j-ийг авч үзэх болно. гүнзгий суралцах хүрээ.
Pytorch гэж юу вэ?
ПиТорч Torch Python номын сангаар бүтээгдсэн үнэгүй, нээлттэй эхийн машин сургалтын номын сан юм.
Энэ нь Facebook-ийн AI Research группээс бүтээгдсэн бөгөөд 2016 оны XNUMX-р сард үнэгүй, нээлттэй эхийн номын сан болгон, компьютерийн хараа, гүнзгий суралцах, байгалийн хэл боловсруулах зэрэгт хэрэглэгдэх программуудыг агуулсан.
Энэ нь кодыг загвар болгон дэмждэг, дибаг хийхийг хөнгөвчилдөг, бусад алдартай шинжлэх ухааны тооцооллын сангуудтай нийцтэй, үр ашигтай хэвээр байхын зэрэгцээ GPU зэрэг техник хангамжийн хурдасгууруудыг идэвхжүүлдэг зайлшгүй шаардлагатай, Pythonic програмчлалын хэлтэй.
PyTorch нь ашиглах боломжтой байдал, гүйцэтгэлийг сайтар бодож үзсэнийхээ ачаар гүнзгий суралцах судлаачдын дунд нэр хүндтэй болсон.
Энэ нь Numpy массивтай төстэй олон хэмжээст массив болох Tensor хэмээх өгөгдлийн үндсэн бүтцийг агуулдаг бөгөөд програмистуудад төвөгтэй программыг хялбархан зохиох боломжийг олгодог. мэдрэлийн сүлжээ.
Энэ нь уян хатан байдал, хурд, хэрэгжүүлэхэд хялбар зэргээс шалтгаалан өнөөгийн салбарууд болон эрдэм шинжилгээний нийгэмлэгт улам бүр түгээмэл болж байгаа нь гүнзгий суралцах хамгийн түгээмэл хэрэглүүр болж байна.
Pytorch-ийн үндсэн шинж чанарууд
- PyTorch нь Python төвтэй буюу "питоник" бөгөөд энэ нь өөр хэл дээр боловсруулсан номын санд интерфэйс болж ажиллахын оронд Python програмчлалтай гүнзгий нэгтгэх зорилготой юм.
- Сурахад хялбар - PyTorch нь уламжлалт програмчлалтай ижил бүтэцтэй бөгөөд нарийн баримтжуулсан бөгөөд хөгжүүлэгчдийн нийгэмлэг үүнийг үргэлж сайжруулахыг хичээдэг. Тиймээс програмист болон програмист бус хүмүүст сурахад хялбар байдаг.
- PyTorch нь тооцооллын ажлыг хэд хэдэн CPU эсвэл GPU өгөгдлийн параллелизмыг ашиглан цөм. Хэдийгээр ижил төстэй параллелизмыг бусад машин сургалтын техниктэй хамт хийж болох ч PyTorch нь үүнийг илүү хялбар болгодог.
- Дибаг хийх: PyTorch-ийн дибаг хийхэд өргөн боломжтой Python дибаг хийх хэрэгслүүдийн нэгийг (жишээлбэл, Python-ийн pdb болон ipdb хэрэгслүүд) ашиглаж болно.
- PyTorch нь динамик тооцооллын графикийг дэмждэг бөгөөд энэ нь ажлын явцад сүлжээний үйл ажиллагааг динамикаар өөрчлөх боломжтой гэсэн үг юм.
- PyTorch нь төрөл бүрийн тусгайлан бүтээсэн модулиудаар ирдэг torchtext, torchvision, torchaudio, энэ нь NLP, компьютерийн хараа, дуу боловсруулах гэх мэт гүнзгий суралцах олон талбарыг шийдвэрлэхэд ашиглаж болно.
Питорчийн хязгаарлалт
- Хязгаарлагдмал хяналт, дүрслэл интерфэйс: TensorFlow нь загвар график (TensorBoard) үүсгэх хүчирхэг дүрслэх хэрэгслийг агуулдаг боловч PyTorch-д одоогоор энэ функц дутагдаж байна. Үүний үр дүнд хөгжүүлэгчид TensorBoard-д гаднаас холбогдох эсвэл одоо байгаа олон тооны Python-ийн аль нэгийг ашиглах боломжтой. өгөгдлийг дүрслэх хэрэгсэл.
- PyTorch бол төгсгөл хүртэл биш юм машин суралцах хөгжлийн платформ; энэ нь серверүүд, ажлын станцууд болон хөдөлгөөнт төхөөрөмжүүдэд програмуудыг байрлуулдаг.
Эдгээр бүх шалтгааны улмаас Питорчийн хамгийн сайн хувилбарыг хайх нь ухаалаг шийдвэр байх болно.
Хамгийн алдартай Pytorch хувилбарууд
Pytorch-ийн хамгийн сайн хувилбаруудын жагсаалтыг энд оруулав.
1. Тензор урсгал
TensorFlow Google-ийн бүтээсэн, гүнзгий суралцахад чиглэсэн, нээлттэй эхийн хүрээ юм. Энэ нь бас стандартыг дэмждэг машин суралцах. TensorFlow нь гүнзгий суралцахаасаа илүү том тоон тооцоололд тулгуурлан бүтээгдсэн.
Цаашилбал, энэ нь гүнзгий суралцах чадварыг хөгжүүлэхэд ихээхэн ач холбогдолтой болох нь батлагдсан тул Google үүнийг үнэ төлбөргүй ашиглах боломжтой болгосон. TensorFlow нь өгөгдлийг тензор гэж нэрлэдэг илүү том хэмжээтэй олон хэмжээст массив хэлбэрээр авдаг. Асар их хэмжээний өгөгдөлтэй ажиллахад олон хэмжээст массивууд тустай байдаг.
TensorFlow нь зангилааны ирмэгийн өгөгдлийн урсгалын график дээр суурилдаг. Гүйцэтгэлийн арга нь график хэлбэртэй байдаг тул GPU ашиглах үед TensorFlow кодыг компьютерийн кластер дээр ажиллуулах нь илүү хялбар байдаг.
C#, Haskell, Julia, R, Ruby, Rust, Scala зэрэг нь TensorFlow-ийн нийгэмлэгийн дэмжлэгийг бий болгосон хэл юм. TensorFlow нь олон тооны хандалтын цэгтэй байх давуу талыг санал болгодог.
Хэлнээс гадна TensorFlow нь түүнтэй холбогдох эсвэл дээр нь бүтээгдсэн олон төрлийн хэрэгслүүдтэй.
Давуу тал
- Энэ нь хэрэглэгчдэд ээлтэй. Хэрэв та Python-г мэддэг бол үүнийг авахад хялбар байх болно.
- Олон нийтийн дэмжлэг. TensorFlow-ийг Google болон бусад байгууллагын мэргэжилтнүүд хөгжүүлэгчид бараг өдөр бүр сайжруулдаг.
- TensorFlow Lite-ийг хөдөлгөөнт төхөөрөмж дээр TensorFlow загваруудыг ажиллуулахад ашиглаж болно.
- Tensorboard нь хяналт тавих хэрэгсэл юм өгөгдлийг дүрслэх. Хэрэв та гүнзгий суралцах загваруудаа хэрхэн ажиллаж байгааг харахыг хүсвэл энэ нь ашиглахад маш сайн хэрэгсэл юм.
- Tensorflow.js нь хөтөч дээр бодит цагийн гүнзгий суралцах загваруудыг ажиллуулахын тулд JavaScript ашиглах боломжийг танд олгоно.
Сул тал
- TensorFlow нь өвөрмөц бүтэцтэй тул алдааг олж илрүүлэх, дибаг хийхэд хэцүү болгодог.
- OpenCL-ийн дэмжлэг байхгүй.
- TensorFlow нь Windows үйлдлийн системийн хэрэглэгчдэд тийм ч их боломж олгодоггүй. Энэ нь Линукс хэрэглэгчдэд зориулсан олон боломжуудыг нээж өгдөг. Гэсэн хэдий ч Windows хэрэглэгчид anaconda prompt эсвэл pip багцыг ашиглан TensorFlow-ийг татаж авах боломжтой хэвээр байна.
- TensorFlow нь тодорхой бус дарааллын хувьд бэлгэдлийн гогцоо санал болгосноороо хоцорч байна. Энэ нь тодорхой дараалалд зориулагдсан тусгай хэрэглээтэй тул үүнийг ашиглах боломжтой систем болгодог. Үүний үр дүнд үүнийг доод түвшний API гэж нэрлэдэг.
2. Керас
Керас нь Python-д суурилсан гүнзгий сургалтын номын сан бөгөөд энэ нь бусад гүнзгий сургалтын тогтолцооноос ялгардаг.
a-г тодорхойлсон өндөр түвшний програмчлалын хэл юм мэдрэлийн сүлжээ API тодорхойлолт. Үүнийг хэрэглэгчийн интерфэйс болгон ашиглах болон түүний ажиллаж буй гүнзгий сургалтын тогтолцооны чадавхийг сайжруулахад ашиглаж болно.
Энэ нь хөнгөн, хэрэглэхэд хялбар минималист хүрээ юм. Эдгээр шалтгааны улмаас Keras нь TensorFlow-ийн үндсэн API-ийн нэг хэсэг юм. Керасын урд хэсэг нь мэдрэлийн сүлжээний загваруудыг судалгаанд хурдан гаргах боломжийг олгодог.
API нь ойлгох, ашиглахад хялбар бөгөөд загваруудыг хүрээ хооронд хялбархан шилжүүлэх боломжийг олгодог нэмэлт урамшуулал юм.
Давуу тал
- Keras API ашиглахад хялбар. API нь сайн зохион бүтээгдсэн, объектод чиглэсэн, дасан зохицох чадвартай тул хэрэглэгчийн туршлагыг илүү тааламжтай болгодог.
- Түгээмэл сургалт болон олон GPU параллелизмын дэмжлэгийг суурилуулсан.
- Keras нь Python-ын мэдээллийн шинжлэх ухааны бүрэн орчинд хялбархан нэвтрэх боломжийг олгодог Python-ийн уугуул модуль юм. Жишээлбэл, Keras загваруудыг Python scikit-learn API ашиглан ашиглаж болно.
- Керас нь гүнзгий суралцах хэд хэдэн загварт зориулж урьдчилан бэлтгэсэн жинг агуулдаг. Бид эдгээр загваруудыг шууд таамаглах эсвэл онцлог шинж чанарыг задлахад ашиглах боломжтой.
Сул тал
- Доод түвшний арын түвшний асуудлуудыг тогтмол авч үзэх нь үнэхээр ядаргаатай байж болно. Бид Керасын хийхээр төлөвлөөгүй ажлуудыг хийх гэж оролдох үед эдгээр асуудал үүсдэг.
- Арын төгсгөлтэй харьцуулахад энэ нь GPU дээр удааширч, тооцоолоход удаан хугацаа шаардагдана. Үүний үр дүнд бид хэрэглэгчдэд ээлтэй байхын тулд хурдыг бууруулах шаардлагатай болж магадгүй юм.
- Sci-kit-learn гэх мэт бусад багцуудтай харьцуулахад Keras-ийн өгөгдлийг урьдчилан боловсруулах чадвар нь тийм ч сонирхолтой биш юм.
3. Apache MX Net
Өөр нэг алдартай Гүн сургалтын хүрээ MXNet юм. Apache програм хангамжийн сангаас үүсгэсэн MXNet нь JavaScript, Python, C++ зэрэг олон хэлийг дэмждэг.
Amazon Web Services нь мөн MXNet-ийг гүнзгий суралцах загвар боловсруулахад дэмждэг. Энэ нь маш өргөн цар хүрээтэй бөгөөд загварчлалыг хурдан сургах боломжийг олгодог бөгөөд олон төрлийн компьютерийн хэлтэй нийцдэг.
Хурд, бүтээмжийг оновчтой болгохын тулд MXNet нь бэлгэдлийн болон зайлшгүй шаардлагатай програмчлалын хэлийг холих боломжийг олгодог. Энэ нь бэлгэдлийн болон зайлшгүй үйл ажиллагааг бодит цаг хугацаанд нь зэрэгцүүлдэг динамик хамаарлын хуваарь дээр суурилдаг.
Дээрээс нь график оновчлолын давхарга нь симболын гүйцэтгэлийг хурдан, санах ойг хэмнэлттэй болгодог. MXNet бол зөөврийн, хөнгөн номын сан юм.
Энэ нь NVIDIA PascalTM GPU-уудаар тэжээгддэг бөгөөд хэд хэдэн GPU болон зангилаанууд дээр өргөтгөх боломжтой тул загваруудыг илүү хурдан сургах боломжийг олгодог.
Давуу тал
- GPU-г дэмждэг ба олон GPU горимтой.
- Үр ашигтай, өргөтгөх боломжтой, аянга шиг хурдан.
- Бүх томоохон платформууд тавцан дээр байна.
- Загвар үйлчилгээ нь энгийн бөгөөд API нь хурдан юм.
- Scala, R, Python, C++ болон JavaScript нь дэмжигдсэн програмчлалын хэлнүүд юм.
Сул тал
- MXNet нь жижиг хэмжээтэй нээлттэй эх TensorFlow-аас илүү олон нийтийн.
- Сайжруулалт, алдааны засвар болон бусад сайжруулалтыг олон нийтийн дэмжлэг багатай тул хэрэгжүүлэхэд удаан хугацаа шаардагдана.
- MxNet хэдийгээр мэдээллийн технологийн салбарт олон фирмүүдэд өргөнөөр ажилладаг ч Tensorflow шиг тийм ч алдартай биш юм.
4. Microsoft CNTK
Microsoft-ын танин мэдэхүйн хэрэгсэл (CNTK) нь түгээн дэлгэрүүлэх гүнзгий суралцах арилжааны боломжтой нээлттэй эхийн хүрээ юм. Үүнийг бүтээхэд ихэвчлэн ашигладаг мэдрэлийн сүлжээ, гэхдээ бас машин сурах, танин мэдэхүйн тооцоололд ашиглаж болно.
Энэ нь олон хэлийг дэмждэг бөгөөд үүлэн дээр ашиглахад хялбар байдаг. Эдгээр чанаруудын улмаас CNTK нь хиймэл оюун ухааны төрөл бүрийн хэрэглээнд тохиромжтой. Хэдийгээр бид C++-г ашиглаж функцийг нь дуудаж болох ч хамгийн түгээмэл сонголт бол Python програмыг ашиглах явдал юм.
Хэд хэдэн компьютер дээр ажиллах үед Microsoft Cognitive Toolkit нь Theano эсвэл TensorFlow гэх мэт хэрэгслүүдээс илүү сайн гүйцэтгэл, өргөтгөх чадварыг өгдөг гэдгийг хүлээн зөвшөөрдөг.
Microsoft Cognitive Toolkit нь RNN болон CNN мэдрэлийн загваруудыг дэмждэг тул зураг, гар бичмэл, яриа таних ажилд тохиромжтой.
Давуу тал
- Өгөгдлийн аналитик хөдөлгүүр болох Apache Spark-тай нэгтгэхэд хялбар.
- CNTK-ийн өргөтгөх чадвар нь үүнийг олон бизнест түгээмэл сонголт болгосон. Хэд хэдэн оновчтой бүрэлдэхүүн хэсгүүд байдаг.
- Тогтвортой, сайн гүйцэтгэлийг санал болгодог.
- Microsoft-ын дэмждэг Azure Cloud-тай сайн ажилладаг.
- Нөөцийн ашиглалт, менежмент нь үр дүнтэй байдаг.
Сул тал
- Tensorflow-тай харьцуулахад олон нийтийн дэмжлэг бага байдаг.
- Сургалтын огцом муруй.
- Үүнд дүрслэх самбар, ARM дэмжлэг байхгүй.
5. DeepLearning4j
Хэрэв Java таны үндсэн програмчлалын хэл бол DeepLearning4j нь ашиглахад тохиромжтой. Энэ бол арилжааны чанартай, нээлттэй эх сурвалжтай, гүнзгийрүүлсэн сургалтын тархсан номын сан юм.
RNN, CNN гэх мэт бүх үндсэн төрлийн мэдрэлийн сүлжээний дизайныг дэмждэг. Deeplearning4j нь гүнзгий суралцахад зориулагдсан Java болон Scala номын сан юм.
Энэ нь Hadoop болон Apache Spark-тай сайн ажилладаг. Deeplearning4j нь GPU-г дэмждэг тул Java-д суурилсан гүнзгий сургалтын шийдлүүдийн гайхалтай хувилбар юм.
Eclipse Deeplearning4j гүнзгий сургалтын тогтолцооны тухай ярихад зарим онцлог шинж чанарууд нь давталттай бууралт, микро үйлчилгээний архитектурын дасан зохицох, хуваарилагдсан CPU болон GPU-ээр дамжуулан зэрэгцээ сургалтыг багтаадаг.
Давуу тал
- Энэ нь маш сайн баримт бичиг, олон нийтийн тусламжтай.
- Apache Spark интеграцчлал нь энгийн.
- Энэ нь өргөтгөх боломжтой бөгөөд асар их хэмжээний өгөгдөлтэй ажиллах чадвартай.
Сул тал
- Tensorflow болон PyTorch-тэй харьцуулахад энэ нь бага алдартай.
- Java бол цорын ганц програмчлалын хэл юм.
Дүгнэлт
Гүнзгий сургалтын хамгийн сайн тогтолцоог сонгох нь хэцүү ажил юм. Тэдгээрийн тоо маш олон байгаа тул эрэлт хэрэгцээ нэмэгдэхийн хэрээр жагсаалт нэмэгдэж байна хиймэл оюун судалгаа, машин сургалтын програмууд улам бүр нэмэгдсээр байна. Хүрээ бүр өөрийн гэсэн давуу болон сул талуудтай.
Аюулгүй байдал, өргөтгөх чадвар, гүйцэтгэл зэрэг хэд хэдэн зүйлийг анхаарч үзэх хэрэгтэй. Байгууллагын түвшний системд найдвартай байдал нь илүү чухал болдог.
Хэрэв та дөнгөж эхэлж байгаа бол Tensorflow бол эхлэхэд тохиромжтой газар юм. Хэрэв та Windows дээр суурилсан арилжааны бүтээгдэхүүн хөгжүүлж байгаа бол CNTK-г сонгоорой. Хэрэв та Java-г илүүд үздэг бол DL4J-г ашиглаарай.
хариу үлдээх