Caffe2 - Wprowadzenie
W ostatnich latach Deep Learning stał się dużym trendem w uczeniu maszynowym. Z powodzeniem zastosowano go do rozwiązywania wcześniej nierozwiązywalnych problemów w programie Vision, Speech Recognition and Natural Language Processing(NLP). Istnieje wiele innych dziedzin, w których jest stosowane uczenie głębokie i które wykazały swoją przydatność.
Caffe (Convolutional Architecture for Fast Feature Embedding) to platforma uczenia głębokiego opracowana w Berkeley Vision and Learning Center (BVLC). Projekt Caffe został stworzony przez Yangqing Jia podczas jego doktoratu. na University of California - Berkeley. Caffe zapewnia łatwy sposób eksperymentowania z głębokim uczeniem się. Jest napisany w C ++ i zapewnia powiązania dlaPython i Matlab.
Obsługuje wiele różnych typów architektur głębokiego uczenia, takich jak CNN (Konwolucyjna sieć neuronowa), LSTM(Pamięć długoterminowa) i FC (w pełni połączone). Obsługuje GPU, dzięki czemu idealnie nadaje się do środowisk produkcyjnych, w których występują głębokie sieci neuronowe. Obsługuje również biblioteki jądra oparte na procesorach, takie jakNVIDIA, Biblioteka CUDA Deep Neural Network (cuDNN) i Intel Math Kernel Library (Intel MKL).
W kwietniu 2017 r. Firma Facebook z siedzibą w USA ogłosiła Caffe2, która obejmuje teraz RNN (Recurrent Neural Networks), aw marcu 2018 r. Caffe2 została połączona z PyTorch. Twórcy Caffe2 i członkowie społeczności stworzyli modele rozwiązywania różnych problemów. Modele te są dostępne publicznie jako modele wstępnie przeszkolone. Caffe2 pomaga twórcom w korzystaniu z tych modeli i tworzeniu własnej sieci do prognozowania zbioru danych.
Zanim przejdziemy do szczegółów Caffe2, zrozummy różnicę między machine learning i deep learning. Jest to konieczne, aby zrozumieć, w jaki sposób modele są tworzone i używane w Caffe2.
Machine Learning v / s Deep Learning
W każdym algorytmie uczenia maszynowego, czy to tradycyjnym, czy też opartym na uczeniu głębokim, wybór funkcji w zestawie danych odgrywa niezwykle ważną rolę w uzyskaniu pożądanej dokładności przewidywania. W tradycyjnych technikach uczenia maszynowegofeature selectionodbywa się głównie na podstawie ludzkiej inspekcji, oceny i głębokiej wiedzy dziedzinowej. Czasami możesz zwrócić się o pomoc do kilku przetestowanych algorytmów wyboru funkcji.
Na poniższym rysunku przedstawiono tradycyjny przepływ uczenia maszynowego -
W uczeniu głębokim wybór funkcji jest automatyczny i jest częścią samego algorytmu uczenia głębokiego. Pokazuje to poniższy rysunek -
W algorytmach głębokiego uczenia się feature engineeringodbywa się automatycznie. Ogólnie rzecz biorąc, inżynieria funkcji jest czasochłonna i wymaga dobrej wiedzy w tej dziedzinie. Aby zaimplementować automatyczne wyodrębnianie funkcji, algorytmy głębokiego uczenia zwykle wymagają ogromnej ilości danych, więc jeśli masz tylko tysiące i dziesiątki tysięcy punktów danych, technika głębokiego uczenia może nie przynieść zadowalających wyników.
W przypadku większych danych algorytmy głębokiego uczenia dają lepsze wyniki w porównaniu z tradycyjnymi algorytmami ML z dodatkową zaletą polegającą na mniejszej lub zerowej inżynierii funkcji.