Neural Networks

Course ini mempelajari menganai apa itu neural networks, ide dasar dari neural networks, bagaimana neural networks bekerja, dan cara merancang arsitektur neural networks sederhana dengan PyTorch.

Apa itu Neural Networks

Terinspirasi atas cara kerja jaringan syaraf di otak manusia, artificial neural networks (ANN) yang kemudian lebih familiar dikenal sebagai neural networks mencoba untuk mereplikasi efektifitas komputasi paralel neuron di dalam suatu mesin. Pada mulanya neural networks merupakan metode yang banyak dikembangkan pada keilmuan neuroscience dan psikologi namun pada beberapa dekade terakhir bergeser dengan lebih banyak ilmu komputer, matematika, statistika, serta optimiasi digunakan dalam mengembangkan dan meningkatkan kemampuan dari arstiketur neural networks.

Beberapa video di bawah ini akan menjelaskan mengenai apa itu neural networks dari sudut pandang neuroscience pada video 1 oleh Geoffrey Hinton, salah satu founding father dari deep learning dan penerima Turing Award tahun 2018. Untuk mendapatkan pengertian secara lebih sederhana, maka video kedua akan dijelaskan pengertian neural networks dengan lebih intuitif dan sederhana dengan ilustrasi dari Andrew N.G pada video ke 2. _ _

Arsitektur Neural Networks

Arsitektur Sederhana Neural Networks

  • Linear neurons

  • Binary threshold n_eurons_

  • Neurons dengan fungsi aktifasi non-linear (sigmoid, ReLU, dll)

Neural Networks Dengan Aplikasinya

  • Neural networks sebagai model untuk mengenali tulisan tangan (handwritten digits)_. _

  • Binary classification: klasifikasi kucing dan bukan kucing.

Multi-layer Perceptrons/Fully-connected Networks

Membangun Neural Networks Sederhana Menggunakan Python Deep Learning Framework

Membangun Neural Networks Sederhana Dengan PyTorch

import os
import torch
from torch import nn
from torch.utils.data import DataLoader
from torchvision import datasets, transforms
class NeuralNetwork(nn.Module):
    def __init__(self):
        super(NeuralNetwork, self).__init__()
        self.flatten = nn.Flatten()
        self.linear_relu_stack = nn.Sequential(
            nn.Linear(28*28, 512),
            nn.ReLU(),
            nn.Linear(512, 512),
            nn.ReLU(),
            nn.Linear(512, 10),
            nn.ReLU()
        )

    def forward(self, x):
        x = self.flatten(x)
        logits = self.linear_relu_stack(x)
        return logits
model = NeuralNetwork().to(device)
print(model)
NeuralNetwork(
  (flatten): Flatten(start_dim=1, end_dim=-1)
  (linear_relu_stack): Sequential(
    (0): Linear(in_features=784, out_features=512, bias=True)
    (1): ReLU()
    (2): Linear(in_features=512, out_features=512, bias=True)
    (3): ReLU()
    (4): Linear(in_features=512, out_features=10, bias=True)
    (5): ReLU()
  )
)

All in One Course Tentang Neural Networks

Last updated