Assalamualaikum Wr.Wb
Segala puji bagi Allah SWT, Tuhan semesta alam, yang telah melimpahkan rahmat, ilmu, dan petunjuk-Nya kepada kita semua. Dengan izin-Nya, kita dapat memahami konsep-konsep penting dalam ilmu pengetahuan, termasuk metode numerik dalam analisis data.
Dalam blog ini, saya akan membahas pemahaman saya mengenai Physics Informed Neural Networks (PINN), khususnya dalam penerapan pada masalah heat conduction 1D menggunakan framework DAI5. Sebelum masuk ke pembahasan utama, saya akan terlebih dahulu menjelaskan secara garis besar apa itu PINN dan beberapa konsep terkait yang mendukung pemahamannya.
Pendahuluan tentang PINN
Machine learning merupakan bidang ilmu yang memungkinkan komputer belajar dari data untuk membuat prediksi atau menyelesaikan masalah tanpa diprogram secara eksplisit. Salah satu teknik dalam machine learning yang menggabungkan kecerdasan buatan dengan hukum fisika adalah Physics Informed Neural Networks (PINN). PINN memiliki dua komponen utama, yaitu jaringan saraf tiruan (neural network) dan pengetahuan fisika.
Jaringan saraf tiruan (neural network) adalah model komputasi yang terinspirasi dari cara kerja otak manusia. Neural network terdiri dari tiga lapisan utama:
- Input layer: Lapisan pertama yang menerima input.
- Hidden layers: Lapisan tengah tempat pemrosesan informasi dan pembelajaran terjadi.
- Output layer: Lapisan terakhir yang menghasilkan output.
Hubungan Framework DAI5 dengan PINN pada Heat Conduction 1D
Framework DAI5 digunakan untuk memahami dan mengimplementasikan PINN dalam menyelesaikan masalah heat conduction 1D. Berikut adalah tahapan dalam DAI5:
- Deep Awareness of i Pada tahap ini, kita perlu menyadari permasalahan yang akan dipecahkan, yaitu heat conduction 1D menggunakan PINN. Sebagai manusia, kita juga memahami bahwa ilmu ini merupakan bagian dari ciptaan Allah SWT yang memiliki manfaat luas dalam kehidupan, baik dari segi teknologi maupun sosial. Dengan memahami bahwa kita adalah subjek dalam penyelesaian masalah ini, kita dapat bertanggung jawab dalam setiap langkah yang diambil.
- Intention Sebelum menyelesaikan masalah heat conduction 1D dengan PINN, kita perlu menetapkan niat dan tujuan yang jelas. Niat ini harus relevan dengan permasalahan yang dihadapi dan memiliki dampak jangka panjang. Dalam hal ini, tujuan utama adalah memahami persamaan heat conduction 1D serta bagaimana implementasi PINN dalam bentuk kode dan algoritma. Dengan niat yang jelas, kita dapat lebih fokus dalam mempelajari dan menerapkan konsep ini untuk berbagai masalah fisika lainnya.
- Initial Thinking Dalam tahap ini, dilakukan analisis awal terhadap masalah dengan menggali akar masalah, konteks analisis, serta pemangku kepentingan yang terlibat. Akar masalahnya adalah bagaimana menyelesaikan heat conduction 1D tanpa metode numerik konvensional. PINN hadir sebagai solusi dengan memanfaatkan jaringan saraf tiruan untuk menyelesaikan persamaan diferensial parsial yang menggambarkan penyebaran panas dalam material.
- Idealization Dalam tahap ini, dilakukan penyederhanaan masalah dengan tetap mempertahankan aspek realisme fisik dan adaptabilitas. PINN harus mematuhi prinsip-prinsip fisika agar dapat diterapkan pada berbagai skenario heat conduction. Salah satu komponen utama dalam PINN adalah loss function, yang digunakan untuk mengukur tingkat kesalahan dalam prediksi dan dioptimalkan selama pelatihan. Untuk memastikan model yang efisien, arsitektur jaringan saraf yang digunakan terdiri dari 3-4 hidden layers dengan masing-masing 20-50 neuron serta fungsi aktivasi tanh, yang dapat menyeimbangkan nonlinearitas dan stabilitas pelatihan.
- Instruction Set Berikut adalah langkah-langkah implementasi PINN untuk heat conduction 1D:
- Memahami masalah fisika Persamaan heat conduction 1D dalam kondisi tunak: (d^2T/dx^2)=0 Dengan kondisi batas di masing-masing ujung batang: T(0)=T0, T(1)=T1.
- Mempersiapkan kode program Mengimpor library yang diperlukan:
import torchimport torch.nn as nnimport numpy as npimport matplotlib.pyplot as plt - Membangun Neural Network Mendefinisikan arsitektur neural network menggunakan PyTorch:
class PINN(nn.Module):def __init__(self):
super(PINN, self).__init__() self.net =
nn.Sequential( nn.Linear(1, 20),
nn.Tanh(), nn.Linear(20, 20),
nn.Tanh(), nn.Linear(20, 1)
)def forward(self, x):
return self.net(x) - Menentukan Fungsi Loss Loss function terdiri dari physics loss dan boundary condition loss:
def compute_loss(model, x, T0, T1):x = x.requires_grad_(True)T = model(x)dT_dx = torch.autograd.grad(T, x, grad_outputs=torch.ones_like(T), create_graph=True)[0]d2T_dx2 = torch.autograd.grad(dT_dx, x, grad_outputs=torch.ones_like(dT_dx), create_graph=True)[0]physics_loss = torch.mean(d2T_dx2**2)bc_loss = (model(torch.tensor([[0.0]])) - T0)**2 + (model(torch.tensor([[1.0]])) - T1)**2 return physics_loss + bc_loss - Melatih Model
def train_pinn(T0, T1, epochs=1000): model = PINN() optimizer = torch.optim.Adam(model.parameters(), lr=0.001) x = torch.linspace(0, 1, 100).reshape(-1, 1).float() for epoch in range(epochs): optimizer.zero_grad() loss = compute_loss(model, x, T0, T1) loss.backward() optimizer.step() if epoch % 100 == 0: print(f"Epoch {epoch}, Loss: {loss.item():.6f}") return model - Memvisualisasikan Hasil
def plot_results(model, T0, T1): x = torch.linspace(0, 1, 100).reshape(-1, 1).float() with torch.no_grad(): T_pred = model(x).cpu().numpy() x = x.numpy() T_analytical = T0 + (T1 - T0) * x plt.plot(x, T_pred, label="PINN Solution") plt.plot(x, T_analytical, '--', label="Analytical Solution") plt.legend() plt.show()
Kesimpulan
PINN adalah pendekatan inovatif dalam menyelesaikan masalah heat conduction 1D dengan menggabungkan machine learning dan hukum fisika. Dengan framework DAI5, kita dapat memahami implementasi PINN secara mendalam dan mengaplikasikannya ke berbagai bidang teknik dan industri.