MIRAI stands for Multiple Index Regression for AI.
It is a regression equation that uses multiple exponential functions and is suitable for creating model equations for AI.
It has proven to be very useful if it can be made to stay awake.
In cosmetics, paints, inks, etc., we have to decide on the formula to use. However, there are so many ingredients to use.
They can be broadly divided into polymers, solvents, inorganics, surfactants, additives, and so on.
For example, there are hundreds of surfactants.
Keeping the other ingredients constant, conduct 10 experiments with 10 different surfactants, and evaluate the stability, gloss, and feel of the product.
The next step is to choose two of them that look good, change the amount used, and conduct experiments to evaluate them.
Then change the solvent. There are hundreds of solvents. Change the polymer. Change the additives.
These results are described in patents.
Let’s think about using Materials Informatics (MI) to streamline such formulation design.
First, prepare the big data
If there are 10 polymers, 10 solvents, 10 inorganics, 10 surfactants, and 10 additives, there are 10*10*10*10*10 combinations, so there are 100,000 possible combinations.
If we change the amount used by 10 levels (for example, from 20% to 40% of the polymer in 2% increments), there are 100,000 levels for each of the 100,000 combinations, so there are 1010 possible results, which is very big.
Data scientists would be happy with that much big data!
In reality, it seems that the maximum number of components is 500, the maximum number of experiments is 1000, and the maximum number of evaluation items is about 50.
Moreover, only about 20 components are used in a single experiment, and the remaining 480 components have zero value. In other words, only about 4% of the 500*1000 data has values, making it a very sparse table.
What I want to do is simple.
Evaluation1=f1(X1, ,,,, X500) Find the function f1 for each evaluation.
Total error = Σ|Exp 1 - f1(X1, ,,,, X500)| Add the all the error of experiments.
The function f1 should be determined so that the total error is minimized. (The error is either absolute value or squared error.)
Which components raise or lower the rating and by how much?
Once we know this quantitatively, we can use a computer to do the inverse analysis.
In other words, we only need to find f1(X1, ,,,, X500).
dimensional degeneracy
When trying to analyze a patent, for example, the number of components is often greater than the number of experiments.
Even when considering the solution of simultaneous equations, the number of equations needs to be greater than the number of variables.
So, it would be normal to use PCA (Principal Component Analysis) or PLS to shrink the dimension. However, if a surfactant is used only once in an experiment, the experimental results of different types of surfactants will be orthogonal (zero inner product), so the dimension cannot be reduced.
Analysis tool MIRAI
I have written the following article about MIRAI, so please read it for more details.
Blog: MI (Materials Integration) Research with MIRAI
Blog: AI for Formulation Design of Paints, Cosmetics, Inks, etc.
Fixed Page:Formulation Design Top Page
But unfortunately, these pages are written in Japanese.
It’s something else entirely that I want to touch on in this blog.
Results with MIRAI
In particular, companies using MIRAI have found it to be very successful in optimizing their formulations.
Experiments with more than 400 ingredients were analyzed, model equations were created, and those with large errors were all found to be input errors.
There are more than 30 evaluation items, and we have started to run 6 jobs (up to the number of Cores) on one machine in parallel. There are also plans to increase the number of computers used.
((Can I get a six-fold increase in my reward as well?)
Comparing the coefficients of which components are used in which evaluations can lead to very fast results. It is possible to quantify what humans have developed through intuition and experience in a way that people can understand.
When you work at home, you can throw in a job and have it calculated before you leave.
This is the result of using Pirika’s tools to enrich chemistry with DX.
This is what I mean when I talk about improving productivity through DX.
We have a problem!
The problem with MIRAI is that it takes a long time to calculate, and it is provided as a web application that runs on a browser.
And for security reasons, companies using it are automatically locked out of the system when no one is operating it. And that means that it is forbidden to unlock it.
I thought of ways to deal with this, such as opening the software and putting weights on the keys to disguise the fact that they were still being operated.
It was a bit too much, so I modified the software to keep it running.
Sorry for too long story!
WakeLock implementation
I didn’t do anything major, I just implemented Javascript WebLock.
This seems to be a function that keeps giving a pseudo-operation to the web app so that it doesn’t do something like, “I was walking around looking at a map, and the screen turned off in a minute because I didn’t operate it. It seems to be a function that keeps giving pseudo-operation so that there is no such thing.
(Safari on Mac doesn’t seem to have this feature, so use Chrome)
It’s easy to use, just place the button that activates wake lock in the body tag.
<div>
<button id="btnStart" class="button">Screen Wake Lock をスタートする </button>
</div>
<div class="demo">
<p>
Screen Wake Lock status:
<span id="status"></span>
</p>
</div>
Then, in javascript, it states the following
<script type="text/javascript">
if ('wakeLock' in navigator) {
let btnStart = document.querySelector('#btnStart');
let status = document.querySelector('#status');
let wakeLock = null;
//---------------------------------------------
// screen wake lock をリクエストするための関数
//---------------------------------------------
const requestWakeLock = async () => {
// ブラウザは Screen Wake Lock を拒否することがあるので、
// try...catch を使い拒否された場合の処理も記述する
try {
// screen wake lock をリクエストする
wakeLock = await navigator.wakeLock.request('screen');
// Screen Wake Lock がリリースされたときの処理
wakeLock.addEventListener('release', () => {
status.innerHTML = '<span style="color:red;font-weight:bold;">released</span>';
});
status.innerHTML = '<span style="color:green;font-weight:bold;">active</span>';
} catch (err) {
console.error(`${err.name}, ${err.message}`);
}
};
//--------------------------------------
// Start ボタンをクリックしたときの処理
//--------------------------------------
btnStart.addEventListener('click', async (event) => {
// screen wake lock をリクエストする
await requestWakeLock();
});
}
</script>
Then, a button will appear as shown below, and you can click on it to make your status active. This will keep you working overnight or all weekend.
This GROVE pro is available to companies and academics who participate in the pirika research group.