Convolutional Neural Networks - Hinter den Kulissen

所在平台: Udemy

课程主页: https://www.udemy.com/course/convolutional-neural-networks-hinter-den-kulissen/

课程评论:没有评论

第一个写评论        关注课程

课程简介

本课程深入探讨了卷积神经网络(CNNs)的理论与实践,这是当今人工智能领域处理图像数据的黄金标准。课程将重点介绍CNNs的各种元素和层类型,并使用PyTorch和fastai这两个深度学习框架,通过纯Python代码实现各个层。 **核心内容包括:** * **CNNs的理论与实践:** 详细讲解CNN的构建方法。 * **卷积(Convolution):** 编程实现卷积池化层(Conv2d),并分析Padding和Stride的计算。 * **数学原理:** 深入研究卷积背后的数学公式。 * **fastai框架:** 解析fastai框架中的CNN-Learner结构以及1cycleTraining方法的理论和功能。 * **Batch Normalization:** 讲解Batch Normalization如何加速CNN的训练。 * **残差网络(ResNet):** 介绍ResNet架构及其应用,并使用PyTorch和纯Python实现自己的ResNet模型。 * **Skip Connections:** 分析Skip Connections的概念及其在优化ResNet中的作用,并实现它。 课程强调了AI在图像分析和处理方面取得的巨大成就,特别是CNNs在缩小人机视觉能力差距方面的贡献。AI的目标是让机器像人类一样“看”世界,并将其用于图像识别、分析和分类等任务。 CNN是一种深度学习算法,专门处理图像数据。它能自动学习特征,学习调整网络中的权重和偏置,使之适应不同特征的重要性。相比其他分类算法,CNN在预处理图像数据方面要求较低,因为其能自行演化出所需的滤波器。 CNN的架构灵感源自人脑的突触工作方式,特别是视觉皮层的组织。图像被输入为像素矩阵,传统的全连接网络处理复杂图像效果不佳。CNN通过滤波器有效表示图像的时空依赖性,减少模型参数,并实现训练过程中的权重调整,从而在降低图像数据维度时保持内容不失真。这使得模型不仅分类精度高,而且在处理大量数据时具有良好的可扩展性。 课程还将介绍主流的CNN架构模型,如LeNet、AlexNet、VGGNet、GooLeNet、ResNet和ZFNet。 在课程的后半部分,重点将放在残差网络(ResNets)上。论文指出,单纯增加网络层数并非总能带来显著提升。2012年Krizhevsky等人的工作开启了深度卷积网络的大门,但当时的深度为8层。随着研究深入,ImageNet模型的最优层数通常在16到30层之间。 训练深层神经网络的难题通过引入“残差块”和“Skip Connection”概念得以缓解。残差块通过“跳跃连接”,将某个层的输出与其下一层的输出关联起来,在CNN内部创建“短路”,从而能够成功训练高达100至1000层的神经网络。ResNet-152模型在ImageNet数据集上的表现,也证明其可训练参数少于VGG模型。Skip Connections作为深度卷积网络的重要扩展,已在图像分类任务中展现出ResNet架构的成功。

课程评论(0条)

课程详情

Toll, dass du dich für Convolutional Neural Networks interessierst!Wir freuen uns, dich auf unserer Kursseite begrüßen zu dürfen! Convolutional Neural Networks (CNNs) - eine Spezialform von neuronalen Netzen) stellen heute den Goldstandard für die Verarbeitung von Bilddaten im Bereich der künstlichen Intelligenz dar!In diesem Spezialkurs gehen wir in der Tiefe auf die verschiedenen Elemente und LayerTypen in Convolutional Neural Networks ein. Dafür setzten wir die Werkzeuge der beiden Deep Learning Frameworks PyTorch und fastai ein und implementieren die einzelnen Layer selbst mithilfe von purem Python Code nach.Insbesondere behandeln wir folgende Themenbereiche:Aufbau von Convolutional Neural Networks in der Theorie und PraxisDie Convolution: Wir programmieren einen Convolutional Pooling Layer (Conv2d)Berechnung von Paddings und Strides bei ConvolutionsDie mathematischen Gleichungen hinter ConvolutionsWie ist der CNN-Learner aus dem fastai Framework aufgebaut?Welche Theorien und Funktionalitäten sind in der 1cycleTraining Methode vom fastai Framework enthalten?Warum hilft das Konzept der Batch Normalization einem Convolutional Neural Network, das Training zu beschleunigen?Was ist eine Residual Network Architektur (ResNet) und wofür kann ich diese einsetzen?Wir implementieren unser eigenes Resdiual Net Model sowohl mithilfe von PyTorch wie auch mit reinem Python Code.Skip Connections ist ein Konzept, das Residual Networks optimieren kann. Wir analysieren, was Skip Connections darstellen und wie wir diese in unserem Modell implementieren können.Insbesondere im Bereich der Analyse und Verarbeitung von Bilddaten konnte künstliche Intelligenz in den vergangenen Jahren enorme Erfolge verbuchen. Besonders gestützt wurde diese Entwicklung durch die Entwicklungen im Bereich neuronaler Netze hin zu Convolutional Neural Nets. CNNs trugen massiv dazu bei, dass die Lücke in der Bildverarbeitung (Computer Vision) zwischen den kognitiven Fähigkeiten von Mensch und Maschine zunehmend verschwindet.Das Ziel für künstliche Intelligenz Algorithmen ist es, dass Maschinen die Welt genauso sehen können wie wir Menschen auch und dieses Wissen für eine Vielzahl von Aufgaben wie Bilderkennung, Bildanalyse, Bildklassifizierung, etc. nützen können. Die dafür schlagende technologische Entwicklung im Bereich von deep learning stellen neuronale Netze - und zwar Convolutional Neural Nets - dar.Ein Convolutional Neural Net ist ein deep Learning Algorithmus der mit Bilddaten arbeitet. Der Algorithmus lernt, die Gewichte und Bias-Werte im neuronalen Netz entsprechend der Wichtigkeit der einzelnen Features anzupassen. Das Vorverarbeiten der Bilddaten ist im Vergleich zu anderen Klassifizierungsalgorithmen durch den Einsatz des neuronalen Netzes weniger wichtig, um gute Erfolge erzielen zu können. Während in einfachen Algorithmen die anzuwendenden Filter manuell implementiert werden, lernt das Convolutional Neural Net diese Filter bzw. Eigenschaften selbst zu entwickeln.Die grundsätzliche Architektur eines neuronalen Netzes ist von der Funktionsweise und Vernetzung der Synapsen im menschlichen Gehirn inspiriert. Die ConvNet (Convolutional Neural Net) Architektur wiederum fand ihren Ursprung in der Organisation des visuellen Kortex. Einzelne Neuronen reagieren nur auf Stimuli in einem stark begrenzten Bereich des visuellen Umfelds - bezeichnet als rezeptives Feld (receptive field). Um das gesamte Sehfeld abzudecken, existiert eine Vielzahl solcher Bereiche, die sich gegenseitig überlappen.Ein Bild wird auch in ein Convolutional Neural Net als Pixelmatrix eingeführt. Ein Ansatz wäre natürlich, diese Matrix in einen eindimensionalen Vektor zu transponieren und durch ein Multi-Level-Perzeptron Netz zur Klassifikation zu schleusen. Das könnte für sehr einfache Bilder zwar durchaus funktioniert, repräsentiert aber weder die Erfolge der letzten Jahre im Deep Learning Computer Vision Bereich, noch würde es für komplexere Bilddaten ausreichend gut funktionieren.Ein deep Convolutional Neural Net (neuronales Netz) stellt eine Möglichkeit dar, sowohl zeitliche, wie auch räumliche Abhängigkeiten mithilfe von Filtern in Bildern darzustellen. Ein ConvNet ist in der Lage, die Anzahl der Parameter im Modell zu reduzieren und die Gewichtung über die Trainingsvorgänge hinweg anzupassen. So hat ein convolutional neural net die Aufgabe, die Dimension von Bilddaten ohne Inhaltsverlust zu reduzieren. Auf diese Weise erhalten wir ein Modell, das nicht nur mit einer hohen Genauigkeit Bilder klassifizieren kann, sondern auch sehr gut skalierbar ist, bei einer hohen Datenmenge.Die wichtigsten Varianten bzw. konkreten Ausprägungen von convolutional neural network Architekturmodellen sind: LeNet, AlexNet, VGGNet (VGG16, und andere), GooLeNet, ResNet, ZFNet.Im zweiten Teil des Kurses widmen wir uns dem Thema Residual Nets (ResNets). Es war im Jahr 2012, dass Krizhevsky et al. den Weg für deep convolutional networks frei machten. Die Tiefe des neuronalen Netzes betrug damals ganze acht Layer - davon fünf Convolutions und drei lineare Layer (fully connected layer). In dem Paper zeigten die Autoren, dass allein mit der Erhöhung der Anzahl an Layer ab einer gewissen Gesamtanzahl keine nennenswerten Verbesserungen im Trainingsergebnis des tiefen neuronalen Netzes mehr erreichbar sind. Die Evidenz zeigt, dass die optimale Gesamtanzahl von Layern für Modellen, die auf dem ImageNet Modell aufbauen zwischen 16 und 30 liegt.Die Schwierigkeit, tiefe neuronale Netze zu trainieren wurde durch das Einführen des Konzepts eines residual Blocks entschärft. Der residual Block ist mithilfe eines Konzepts mit der Bezeichnung "Skip Connection" in der Lage, die Ausgabewerte eines Layers mit jenen des nächsten Layers zu verknüpfen und bestimmte "Kurzschlüsse" innerhalb des convolutional Networks zu schaffen. Die Autoren des entsprechenden Papers, in dem residual blocks mit skip connections vorgestellt wurden, zeigten, dass sie so in der Lage waren, neuronale Netze mit 100 bis 1000 Layer erfolgreich zu trainieren. Auch der Test auf dem ImangeNet Datenset zeigte, dass das ResNet Modell mit 152 Layern weniger trainierbare Parameter als das VGG Modell aufweist.Skip Connections stellen also eine sehr interessante Erweiterung von deep convolutional networks dar. Die Autoren haben den Erfolg der ResNet Modellarchitektur hinsichtlich der Klassifizierung von Bilddaten ausdrücklich dargelegt.

课程标签

0人关注该课程

主题相关的课程