Yapısal optimizasyonda Makine Öğrenimi nasıl kullanılır?

Bir Makine Öğrenimi modelini Altair OptiStruct içinde yanıt fonksiyonu (response) olarak kullanabilmek harika olmaz mıydı? Bir regresyon modeli, optimizasyonunuzda başka türlü dikkate alınamayacak bir Temel Performans Göstergesini (KPI) temsil etmek için kullanılabilir veya bir sınıflandırma modeli, normal yanıtlar kullanılarak tanımlanması zor olan bir kısıtlamayı tanımlamak için kullanılabilir. Bu blog yazısında, iki farklı deformasyon şeklini ayırt etmek için bir Altair OptiStruct yapısal optimizasyonu içinde bir yanıt olarak bir PhysicsAI Expert Emulation sınıflandırıcısının nasıl kullanılabileceğini açıklanacaktır.

PhysicsAI Expert Emulation, bir Deney Tasarımı (DOE) alır, sonuç dosyalarını okur ve tasarım alanınızdaki farklı davranışları görselleştirmek için kümelemeyi kullanır. Daha sonra, yeni bir analizin davranışını otomatik olarak tanımlamak için kullanılabilecek, istediğiniz davranışı tanımlayan bir sınıflandırıcı oluşturmanıza olanak tanır.

Altair OptiStruct ile harici makine öğrenimi modelimizi nasıl birleştiririz? Cevap, Excel, Fortran, C veya Altair Compose‘a bir köprü oluşturmamızı sağlayan DRESP3 kartıdır (harici yanıt /external response). Altair PhysicsAI Makine Öğrenimi kütüphanelerini kullanmak için python’a erişebilmemiz gerekir, bir C veya Fortran kütüphanesi derleme gerektirir, ancak Altair Compose python’a yerleşik bir köprüye sahiptir – derleme gerekmez! Bu bize aşağıdaki iş akışını verir,

Bu iş akışını test etmek için bir modele ihtiyacımız var, bu yüzden Atlair OptiStruct help içerisinde bulunan bir örnek kullanalım, OS-E: 0930, Altair Compose ile arayüz oluşturan bir DRESP3’ün nasıl oluşturulacağını açıklıyor. Bu örnek, rüzgâr yüklemesi altındaki bir radar çanağının dörtte birini içermektedir. Simetri koşulları yatay ve dikey bağlantı levhalarına uygulanır, destek kirişi zemine tamamen sabitlenir ve yükleme, çanağın yüzeyine bir basınç yükü yoluyla uygulanır. Kalınlık (gauge) tasarım değişkenleri dış yüzey ve bağlantı levhaları üzerinde tanımlanmış ve ayrı bir tasarım değişkeni de malzemelerin Young modülü üzerinde tanımlanmıştır.

PhysicsAI Expert Emulation makine öğrenimi modelimizi oluşturmak için bir veri kümesi oluşturmamız gerekecektir. Bunu, Altair HyperStudy‘de bir Deney Tasarımı (DOE) çalıştırarak yapabiliriz; burada her nokta, her tasarım noktasında tasarım değişkenleri için farklı değerlerle yalnızca yukarıdaki radar çanağının bir analizidir. Bu DOE daha sonra aşağıda gösterilen Altair HyperWorks‘daki PhysicsAI Expert Emulation tarafından sonradan işlenebilir,

Yer değiştirme şeklini sorguladığımızda, tasarım alanında iki ana davranış olduğunu görebiliriz; biri yumuşak bir yer değiştirme, diğeri ise radarın sağ üst köşesinde yoğunlaşan yer değiştirme. PhysicsAI Expert Emulation, sınıf üyeliğini yalnızca bir sonuç dosyasından değil, aynı zamanda dahili bir alan tahmincisinden de tahmin edebilen bir sınıflandırıcı oluşturabilir (alan tahmini hakkında daha fazla bilgiyi buradan okuyabilirsiniz).

Dahili alan tahminini kullanmak, yeni bir sonuç dosyası yerine tasarım değişkeni değerlerinden bir sınıflandırma yapmamızı sağlayacaktır. Bu örnek model için, sınıflandırma modeli bir test setinde hem sonuç dosyasından hem de dahili alan tahmincisinden tahmin yaparken %100 doğruluğa sahiptir ve dahili alan tahmincisinin R2 değeri 0,93’tür, bu nedenle doğru tahminler alacağımızdan emin olabiliriz.

Artık sınıflandırma modelimiz olduğuna göre, bunu bir DRESP3 kullanarak Altair OptiStruct modelimize bağlamalıyız. Bunu yapmak için Altair Compose ve onun python köprü işlevini kullanacağız. Compose’da, aşağıda gösterildiği gibi OptiStruct’tan çağrılacak aşağıdaki işlevi oluşturuyoruz; burada tasarım değişkeni girdilerimiz “rparam” içinde yer alıyor ve çıktı “rresp” içine kaydediliyor. Tasarım değişkenlerini python’a aktarıyoruz, PhysicsAI – Expert Emulation sınıflandırıcımızı çalıştıran bir komut dosyası çalıştırıyoruz ve ardından tasarımın “class_probability” değişkeninden istediğimiz grupta olma olasılığını döndürüyoruz.

Daha sonra OptiStruct’taki fonksiyonumuza, optimizasyon başlığında aşağıdaki satırla bir kütüphane olarak referans verebiliriz,

ve ardından bu kütüphaneyi bulk data daki aşağıdaki kartla referanslandıran tasarım yanıtını oluşturun.

Artık makine öğrenimi yanıtımızı diğer yanıtlarla aynı şekilde ele alabiliriz. Bu durumda DRESP3, tasarımın istenen sınıfta olma olasılığını döndürecektir, bu sadece sınıf etiketine (örneğin, grup 1 veya 2) tercih edilir, çünkü olasılık sürekli olacaktır ve optimize edicinin gradyanları hesaplamasına izin verecektir.

Her bir deformasyon grubunu hedefleyen iki optimizasyon kurarak sınıflandırma yanıtını test edelim. Her bir grubu, tasarımın o grubun bir üyesi olma olasılığının %60’ın üzerinde olduğu bir kısıtlama ekleyerek hedefleyeceğiz. İlk optimizasyon için kütleyi minimize edeceğiz ve Grup 1’i hedefleyeceğiz. Sonuçlar aşağıda görülebilir,

Sağ kenara doğru artan yumuşak bir yer değiştirme gradyanı ile Grup 1’in gerekliliklerini görsel olarak karşılayan bir tasarım elde ediyoruz.

İkinci optimizasyon için Grup 2’yi hedefleyeceğiz, ancak Grup 2’yi hedeflemek ve kütleyi en aza indirmek çakışmayacaktır, bu nedenle optimize edici tüm tasarım değişkenlerini alt sınırlarına ayarlayacaktır. Amaç fonksiyonunu kütleyi maksimize edecek şekilde değiştirmek Grup 2’yi hedeflemekle çelişeceğinden sınıflandırma kısıtlamasının aktif olduğundan emin olabiliriz.

Görsel olarak, optimize edicinin Grup 2’de bir sonuç ürettiğini ve yer değiştirmenin radarın sağ üst köşesinde yoğunlaştığını görebiliriz. Optimizasyon 1, Optimizasyon 2’den daha düşük bir kütleye sahiptir, bu nedenle sadece kalınlıkları küresel olarak artırarak veya azaltarak grup gereksinimimizi karşılayan çözümler bulmadığımızdan emin olabiliriz, bu da sınıflandırma kısıtlamamızın aktif ve etkili olduğunu gösterir. Sınıflandırmanın sadece yer değiştirmenin büyüklüğünden ziyade yer değiştirme şekline dayandığına dikkat edin; bu, KPI tabanlı kısıtlamalar kullanılarak yapılması zor olan bir şeydir.

Bu yaklaşım PhsyicsAI Expert Emulation ile sınırlı değildir, Python’dan çağrılabilen herhangi bir kütüphane veya fonksiyon kullanılabilir. Belki de optimizasyonunuza farklı bir fiziğin KPI’ını temsil etmek için bir regresyon modeli ekleyebilirsiniz, örneğin Yapısal bir optimizasyon içinde bir Elektromanyetik KPI’nın regresyon uyumu.

Altair HyperWorks, OptiStruct, HyperStudy ve Compose yazılımlarını Altair ONE sitesinden indirebilir, sorularınızı iletişim formunu kullanarak iletebilirsiniz.