WEBVTT

1
00:00:00.340 --> 00:00:01.150
STFC-RAL-CR03-RAL-R61-2.01: Please.

2
00:00:01.990 --> 00:00:20.420
STFC-RAL-CR03-RAL-R61-2.01: Okay, welcome to the seminar. I think in the week of Nobel Prizes, we have a very fitting seminar today. So let me introduce the speakers. David McNabb and Rob Nichols are computational scientists here in SCDF.

3
00:00:20.420 --> 00:00:25.019
STFC-RAL-CR03-RAL-R61-2.01: the STFC Scientific and Computing Department.

4
00:00:25.310 --> 00:00:32.799
STFC-RAL-CR03-RAL-R61-2.01: Working on methods, software, and data analysis for computational structural biology.

5
00:00:33.150 --> 00:00:47.509
STFC-RAL-CR03-RAL-R61-2.01: David's background is in crystal structure prediction, electronic structure theory, crystallography, software engineering, embedded devices, and machine learning. He obtained Master's

6
00:00:47.510 --> 00:00:58.879
STFC-RAL-CR03-RAL-R61-2.01: a degree in Natural Sciences at Leicester University, a Master's in Theory and Modeling in the Chemical Sciences at Oxford University.

7
00:00:58.880 --> 00:01:04.099
STFC-RAL-CR03-RAL-R61-2.01: and a PhD in theoretical and computational chemistry at Southampton.

8
00:01:04.519 --> 00:01:15.240
STFC-RAL-CR03-RAL-R61-2.01: His current work combines scientific software development. With machine learning and AI to automate computational workflows.

9
00:01:15.680 --> 00:01:24.209
STFC-RAL-CR03-RAL-R61-2.01: Rob studied mathematics at the University of York, followed by a master's in mathematics in living environment.

10
00:01:24.310 --> 00:01:34.990
STFC-RAL-CR03-RAL-R61-2.01: and a PhD in chemistry. He then spent over a decade at the MRC Laboratory of Molecular Biology in Cambridge.

11
00:01:35.070 --> 00:01:45.299
STFC-RAL-CR03-RAL-R61-2.01: Developing methods and software for macromolecular crystallography and cryo-electron microscopy.

12
00:01:46.190 --> 00:02:01.229
STFC-RAL-CR03-RAL-R61-2.01: His research interests center on statistical inference, modeling, and data analysis, and he also teaches applied statistics at the University of Cambridge. So, let's welcome our speakers.

13
00:02:04.740 --> 00:02:13.469
STFC-RAL-CR03-RAL-R61-2.01: Yeah, thank you very much for the introduction. It's really nice to be over here, and I get completely no audience to talk to about some of these ideas that we've been

14
00:02:13.740 --> 00:02:16.439
STFC-RAL-CR03-RAL-R61-2.01: Working on. So, I'm Rob.

15
00:02:17.050 --> 00:02:25.360
STFC-RAL-CR03-RAL-R61-2.01: And I'm going to give you this one slide brief intro into who we are, computational biology and energy theme. And that's the terms of.

16
00:02:25.770 --> 00:02:27.679
STFC-RAL-CR03-RAL-R61-2.01: Such computing departments.

17
00:02:27.830 --> 00:02:38.449
STFC-RAL-CR03-RAL-R61-2.01: Then I'm going to talk about phasing decision theoretic framework process optimization that we've been developing. And David's going to talk about the production processing workflows and methodology of crystallography.

18
00:02:38.770 --> 00:02:48.589
STFC-RAL-CR03-RAL-R61-2.01: So I should say disclaimer. These are pretty early stage projects. So we haven't got any results. We're going to talk about where we've got up to work on. So where this is going.

19
00:02:51.220 --> 00:03:05.649
STFC-RAL-CR03-RAL-R61-2.01: So I'm essentially going to be talking about how to optimize individual software components by thinking about parameters that are being used to run software, and David is going to be talking about how to optimize whole workflows through computational pipelines.

20
00:03:07.980 --> 00:03:22.199
STFC-RAL-CR03-RAL-R61-2.01: So in the computational biology and imaging theme, there are four different groups. We've got the macromolecular crystallography group, which focuses on methods development and actually distributes a quite large software suite called CCP4.

21
00:03:22.420 --> 00:03:33.219
STFC-RAL-CR03-RAL-R61-2.01: The idea being that it's taking diffraction data, computational crystallography, and trying to produce 3D structural models of mathematical structure.

22
00:03:34.980 --> 00:03:48.959
STFC-RAL-CR03-RAL-R61-2.01: There's the molecular cellular electron microscopy group, which is very similar to CCP4, only instead of focusing on crystallographic experiments, focus on electron microscopy experiments. So the CCPM group will be taking

23
00:03:49.250 --> 00:04:00.360
STFC-RAL-CR03-RAL-R61-2.01: data in real space, unlike the reciprocal space diffraction images that we're working with in Csp. 4. But again, trying to produce 3D. Molecular structural models.

24
00:04:01.710 --> 00:04:13.420
STFC-RAL-CR03-RAL-R61-2.01: There's the biomolecular simulation group, which will be performing molecular dynamics and silico experiments, essentially trying to simulate these 3D macromolecular structures that we are producing experimentally.

25
00:04:14.150 --> 00:04:16.779
STFC-RAL-CR03-RAL-R61-2.01: And this Computed Tomography and Imaging group.

26
00:04:17.130 --> 00:04:20.319
STFC-RAL-CR03-RAL-R61-2.01: which comprises 6 people at Ccpi.

27
00:04:20.360 --> 00:04:37.220
STFC-RAL-CR03-RAL-R61-2.01: which focuses on material science, so inorganic, as opposed to your organic groups are focusing on, and CSQCM RBI, which is biological energy. So considering objects at a completely different scale to the mapping molecules that the other groups are focusing on.

28
00:04:38.750 --> 00:04:49.449
STFC-RAL-CR03-RAL-R61-2.01: So I personally have close interactions with both Csp. 4 and Cspm. And David here quite specifically in Csp. 4. So we're going to focus on

29
00:04:49.650 --> 00:04:56.639
STFC-RAL-CR03-RAL-R61-2.01: Mathematical crystallography today. That being said, I'm going to

30
00:04:57.070 --> 00:05:09.909
STFC-RAL-CR03-RAL-R61-2.01: try to not focus too much on a particular field, and talk about things in the general sense, so that hopefully maybe some of you might see some sort of parallels, and, See if there could be links to problems that you're working on, perhaps.

31
00:05:11.190 --> 00:05:17.200
STFC-RAL-CR03-RAL-R61-2.01: In order to kind of really drive home that we're not even thinking about Science, per se.

32
00:05:17.440 --> 00:05:29.120
STFC-RAL-CR03-RAL-R61-2.01: Let's consider an archive. Let's consider if we're trying to think about how statistics, and here I'm including machine learning, AI, as well as classical statistics, in production and use of cars.

33
00:05:29.880 --> 00:05:35.439
STFC-RAL-CR03-RAL-R61-2.01: So cars have different components. There's the body and frame, the engine.

34
00:05:36.270 --> 00:05:37.480
STFC-RAL-CR03-RAL-R61-2.01: Transmission?

35
00:05:38.100 --> 00:05:42.250
STFC-RAL-CR03-RAL-R61-2.01: Wheels, control systems, and all of these different components have to be, well.

36
00:05:42.400 --> 00:05:48.960
STFC-RAL-CR03-RAL-R61-2.01: So you have the automotive engineer who would be designing and producing these individual components.

37
00:05:49.390 --> 00:05:55.360
STFC-RAL-CR03-RAL-R61-2.01: We would have a mechanical engineer who would then be configuring and tuning these components.

38
00:05:55.510 --> 00:05:56.690
STFC-RAL-CR03-RAL-R61-2.01: So that's…

39
00:05:56.960 --> 00:06:03.889
STFC-RAL-CR03-RAL-R61-2.01: instead of having something which kind of is minimally functional actually gets tuned. So that is something that works really well.

40
00:06:04.020 --> 00:06:05.740
STFC-RAL-CR03-RAL-R61-2.01: the top of this front of the tree.

41
00:06:06.960 --> 00:06:10.790
STFC-RAL-CR03-RAL-R61-2.01: quickly what… Success means,

42
00:06:11.100 --> 00:06:25.329
STFC-RAL-CR03-RAL-R61-2.01: be different. So if you're trying to have a car that is really fast, suitable for racing. Well, that's 1 type of optimization. But it could be that we want something that is more suitable for widespread use. Think about computational efficiency.

43
00:06:26.250 --> 00:06:29.200
STFC-RAL-CR03-RAL-R61-2.01: And indeed, the development in one direction

44
00:06:29.400 --> 00:06:35.560
STFC-RAL-CR03-RAL-R61-2.01: could actually help with development of different application as well. So that's something that we're keeping in mind.

45
00:06:36.250 --> 00:06:42.079
STFC-RAL-CR03-RAL-R61-2.01: And then, finally, we've also got customer who'd be the person who operates the car in Kent.

46
00:06:43.350 --> 00:06:50.409
STFC-RAL-CR03-RAL-R61-2.01: So here we've got three different areas that involve decision making in The production induced slot cut.

47
00:06:50.640 --> 00:06:55.429
STFC-RAL-CR03-RAL-R61-2.01: So let's think about the analogy here to computational science.

48
00:06:56.400 --> 00:07:00.860
STFC-RAL-CR03-RAL-R61-2.01: Well, person designing, producing software will

49
00:07:01.080 --> 00:07:03.940
STFC-RAL-CR03-RAL-R61-2.01: That would be people doing methods and software development.

50
00:07:05.930 --> 00:07:10.029
STFC-RAL-CR03-RAL-R61-2.01: The configuration of tuning, well, that would be software optimization.

51
00:07:10.870 --> 00:07:17.889
STFC-RAL-CR03-RAL-R61-2.01: And customer operating the software will be workflows, which could be a manual user.

52
00:07:18.430 --> 00:07:23.079
STFC-RAL-CR03-RAL-R61-2.01: using software. It could be a pipeline, an automated procedure.

53
00:07:24.760 --> 00:07:29.519
STFC-RAL-CR03-RAL-R61-2.01: Thinking where machine learning and AI could fit into these different components.

54
00:07:29.830 --> 00:07:41.449
STFC-RAL-CR03-RAL-R61-2.01: Well, in methods and software development, in our field at least, there's been an explosion of approaches for various different pieces of the piece of software over the past 10 years, I'd say.

55
00:07:43.780 --> 00:07:46.220
STFC-RAL-CR03-RAL-R61-2.01: In terms of the operation, we'll…

56
00:07:46.680 --> 00:07:52.370
STFC-RAL-CR03-RAL-R61-2.01: We're now thinking about AI-guided automated pipelines, which I'll leave for David to discuss.

57
00:07:52.530 --> 00:07:54.330
STFC-RAL-CR03-RAL-R61-2.01: in the second half of this talk.

58
00:07:55.110 --> 00:08:04.779
STFC-RAL-CR03-RAL-R61-2.01: But then, what about software optimization? So I suppose this has been mainly ad hoc heuristic in this huge room for improvements, at least in the structural biology realm.

59
00:08:05.070 --> 00:08:14.780
STFC-RAL-CR03-RAL-R61-2.01: So some of you might get the records. But really, I'm kind of making fun of myself here, because I for a very long time was one of the software developers who was

60
00:08:15.840 --> 00:08:21.840
STFC-RAL-CR03-RAL-R61-2.01: coming up with heuristics for what would be the optimal parameters for given pieces of software.

61
00:08:22.370 --> 00:08:28.679
STFC-RAL-CR03-RAL-R61-2.01: And then spent many years going and teaching in international workshops on how people should…

62
00:08:29.260 --> 00:08:37.949
STFC-RAL-CR03-RAL-R61-2.01: when something goes wrong, have a look through the log file, interpret what that information means, and then use that to change those very parameters that I've actually put in the software in the first place.

63
00:08:38.380 --> 00:08:44.220
STFC-RAL-CR03-RAL-R61-2.01: I thought, this is crazy, we shouldn't be doing this. Like, instead of asking the user to be

64
00:08:44.340 --> 00:08:46.360
STFC-RAL-CR03-RAL-R61-2.01: figuring this out. We should just…

65
00:08:46.750 --> 00:08:50.709
STFC-RAL-CR03-RAL-R61-2.01: have an automated system. So you work it out well in the 1st place.

66
00:08:51.440 --> 00:08:56.270
STFC-RAL-CR03-RAL-R61-2.01: It sounds easier than it is, but that's the kind of motivation behind it.

67
00:08:56.430 --> 00:08:57.770
STFC-RAL-CR03-RAL-R61-2.01: Yes, I have.

68
00:08:59.380 --> 00:09:07.570
STFC-RAL-CR03-RAL-R61-2.01: So if we just focus now on this aspect, this configuration and tuning of the software, come back to the cars analogy.

69
00:09:07.790 --> 00:09:11.289
STFC-RAL-CR03-RAL-R61-2.01: And think about, well, should drivers be left to tune their own cars?

70
00:09:11.650 --> 00:09:23.629
STFC-RAL-CR03-RAL-R61-2.01: Probably not. Because if everyone tuned their own cars, we'd get huge issues with quality control, consistency, reproducibility, ultimately, user experience, satisfaction. Terrible.

71
00:09:25.530 --> 00:09:36.430
STFC-RAL-CR03-RAL-R61-2.01: Indeed, drivers are neither engineers nor mechanics, in the same way that our software users are neither programmers nor analysts, so we shouldn't expect them to take on these different roles.

72
00:09:38.680 --> 00:09:46.800
STFC-RAL-CR03-RAL-R61-2.01: The next question is, should we use AI, especially in this age? Everyone's using it for everything. is this not suitable application?

73
00:09:47.650 --> 00:09:52.329
STFC-RAL-CR03-RAL-R61-2.01: Maybe, but there are things. Let's consider the use place. We've.

74
00:09:52.580 --> 00:10:03.699
STFC-RAL-CR03-RAL-R61-2.01: in our particular fields. There's a number of power users that can use the software really well. We've also got the clueless users and officers who are using the software that don't know how to at all.

75
00:10:03.760 --> 00:10:13.630
STFC-RAL-CR03-RAL-R61-2.01: We've got frustrated users that know what they should be doing, but it's just not working as they wanted to. And the oblivious users who know what they should be doing but don't really care.

76
00:10:13.780 --> 00:10:20.219
STFC-RAL-CR03-RAL-R61-2.01: And all of this data ends up in protein data in that particular case, we've got a huge database.

77
00:10:20.350 --> 00:10:23.659
STFC-RAL-CR03-RAL-R61-2.01: Hundreds of thousands of my personal structures now.

78
00:10:24.540 --> 00:10:30.260
STFC-RAL-CR03-RAL-R61-2.01: And so if we were going to be using all of this data generated by our user base.

79
00:10:30.670 --> 00:10:37.509
STFC-RAL-CR03-RAL-R61-2.01: for AI, well, that's going to mean that we're going to end up with suboptimal machines that are limited by the training data.

80
00:10:38.520 --> 00:10:58.430
STFC-RAL-CR03-RAL-R61-2.01: Indeed, Diamond, just across the road, has got a huge amount of data, and I've said, well, can't we just use this for training? Well, yeah, if you want us to automatically be able to do just as bad as people are today. But really, we want to be thinking about what comes next, and how do we actually make it better than today, and be forward thinking.

81
00:10:59.500 --> 00:11:03.219
STFC-RAL-CR03-RAL-R61-2.01: So I post that AI, and here I've got AI in quotes.

82
00:11:03.810 --> 00:11:13.130
STFC-RAL-CR03-RAL-R61-2.01: AI in terms of like the modern definition of people talking about large language models is good at finding plausible answer from set or space of reasonable answers.

83
00:11:14.010 --> 00:11:19.120
STFC-RAL-CR03-RAL-R61-2.01: So, for example, if you go to an agent and say, give me a picture of a cat.

84
00:11:19.880 --> 00:11:21.360
STFC-RAL-CR03-RAL-R61-2.01: Great finish with accounts.

85
00:11:21.520 --> 00:11:23.960
STFC-RAL-CR03-RAL-R61-2.01: So probably quite a good picture account.

86
00:11:24.380 --> 00:11:32.180
STFC-RAL-CR03-RAL-R61-2.01: Then you can ask it again for a picture of a cat, give you a different picture of a cat. Do that many times. You end up with lots and lots of pictures of cats.

87
00:11:32.750 --> 00:11:36.660
STFC-RAL-CR03-RAL-R61-2.01: And none of them is the correct or the wrong answer.

88
00:11:36.910 --> 00:11:41.390
STFC-RAL-CR03-RAL-R61-2.01: There was no correct picture of the captain. So it's a misspecified problem.

89
00:11:44.260 --> 00:11:51.079
STFC-RAL-CR03-RAL-R61-2.01: Which is fine, if what we want is a plausible answer, but actually, in science, a lot of the time, what we want is the right answer.

90
00:11:52.050 --> 00:12:03.880
STFC-RAL-CR03-RAL-R61-2.01: We can't get to the right answer. But what we think that we could get to is an approximation of the right answer ideally with uncertainty information. So we know how reliable that is.

91
00:12:07.090 --> 00:12:13.809
STFC-RAL-CR03-RAL-R61-2.01: So AI can learn from historical use behavior. So it's very suitable in cases like

92
00:12:14.040 --> 00:12:22.480
STFC-RAL-CR03-RAL-R61-2.01: Mimicking the behavior of graphical interfaces, which are extremely complex. Optimal pathways through workflows, which we'll hear about afterwards from David.

93
00:12:23.040 --> 00:12:39.880
STFC-RAL-CR03-RAL-R61-2.01: And Agentic AI can do things like read software documentation, tutorials, historical records, do a really good job of mimicking current and historical behavior. But historical decisions are heterogeneous, and often suboptimal.

94
00:12:40.250 --> 00:12:44.359
STFC-RAL-CR03-RAL-R61-2.01: Really, we want to be doing a better job than doing tonight.

95
00:12:46.010 --> 00:12:52.250
STFC-RAL-CR03-RAL-R61-2.01: So the solution we're going for is to use purposely designed experiments combined with principal statistical model.

96
00:12:52.590 --> 00:12:59.709
STFC-RAL-CR03-RAL-R61-2.01: And importantly, as part of the society, we want it to be robust and efficient. So I'm sure that I'm…

97
00:13:00.050 --> 00:13:05.600
STFC-RAL-CR03-RAL-R61-2.01: preaching to the choir here. But let's just kind of recap statistical robustness and efficiency.

98
00:13:06.360 --> 00:13:19.940
STFC-RAL-CR03-RAL-R61-2.01: So suppose you've got some sort of function which is a score function. And we're trying to identify what a particular parameter is. So this could be like a weight between the likelihood and prior information of a given target function. So

99
00:13:21.470 --> 00:13:27.080
STFC-RAL-CR03-RAL-R61-2.01: We could just, through force, look at all of the different counter values and choose the one.

100
00:13:27.770 --> 00:13:29.960
STFC-RAL-CR03-RAL-R61-2.01: That is the lowest, the best score you want.

101
00:13:30.080 --> 00:13:31.490
STFC-RAL-CR03-RAL-R61-2.01: Very close estimate.

102
00:13:32.290 --> 00:13:42.640
STFC-RAL-CR03-RAL-R61-2.01: Well, we could do something like add some regularization smoother, at which point this would give us a new estimate. So here we've got smooth estimates of the optimal trans value.

103
00:13:43.240 --> 00:13:50.690
STFC-RAL-CR03-RAL-R61-2.01: Well, we could say that we know something about the system. Let's assume that we've got some sort of quadratic signal underlying this noisy data set.

104
00:13:50.980 --> 00:13:54.150
STFC-RAL-CR03-RAL-R61-2.01: At which point, we have got some new parameter estimates.

105
00:13:57.020 --> 00:14:04.130
STFC-RAL-CR03-RAL-R61-2.01: So I actually know what the answer is, because I generated that sequence. This is time series that I generated.

106
00:14:04.230 --> 00:14:08.350
STFC-RAL-CR03-RAL-R61-2.01: And this green dashed line actually is the ground truth.

107
00:14:08.670 --> 00:14:12.180
STFC-RAL-CR03-RAL-R61-2.01: where the signal corresponds to having a parameter value of 5.

108
00:14:12.990 --> 00:14:25.920
STFC-RAL-CR03-RAL-R61-2.01: It's easy to imagine that if you were to generate this process many different times, have many different data sets, different levels of noise, different instances of noise, then we would get a variety of different answers.

109
00:14:28.800 --> 00:14:36.630
STFC-RAL-CR03-RAL-R61-2.01: So in thinking about robustness, how much does the answer change when the data change? And the answer is, the brute force approach is extremely unrobust.

110
00:14:39.140 --> 00:14:51.989
STFC-RAL-CR03-RAL-R61-2.01: Thinking about statistical efficiency, well, what if we were to repeat this experiment, say, a thousand times? We were going to collect lots and lots of different data sets, the same underlying signal, but different instances of noise.

111
00:14:52.360 --> 00:14:54.309
STFC-RAL-CR03-RAL-R61-2.01: This situation will occur.

112
00:14:54.910 --> 00:15:10.199
STFC-RAL-CR03-RAL-R61-2.01: calculate what's the optimal parameter values for each of these, and we could do the same for all those smooth curves and all the parameterized curves we could estimate in each case, and get the whole distribution of these parameter values that are optimal across these different instances.

113
00:15:10.800 --> 00:15:22.770
STFC-RAL-CR03-RAL-R61-2.01: And what we see is that the law of large numbers comes to the rescue, and all of these averages over all of those instances, produce a pretty good estimate of the true.

114
00:15:23.140 --> 00:15:24.810
STFC-RAL-CR03-RAL-R61-2.01: I was voting 5.

115
00:15:25.940 --> 00:15:33.820
STFC-RAL-CR03-RAL-R61-2.01: But the brute force approach has actually got quite a lot of variance. There's quite a lot of uncertainty associated with that estimate.

116
00:15:34.030 --> 00:15:43.050
STFC-RAL-CR03-RAL-R61-2.01: And the smoothed version as well. But then, if we inject some sort of sensible parameterization, if you know something about the system, then variance.

117
00:15:43.290 --> 00:15:45.639
STFC-RAL-CR03-RAL-R61-2.01: Hope that's as reduces.

118
00:15:46.050 --> 00:15:51.770
STFC-RAL-CR03-RAL-R61-2.01: So that's what we're referring to when we think about efficiency. How precisely can we answer the question?

119
00:15:51.890 --> 00:15:53.619
STFC-RAL-CR03-RAL-R61-2.01: Given the data that we've got.

120
00:15:54.510 --> 00:16:04.640
STFC-RAL-CR03-RAL-R61-2.01: Takeaway messages here being that firstly, single data set brute force search is a bad idea. It's not robust. You're going to get extremely variable.

121
00:16:04.740 --> 00:16:07.259
STFC-RAL-CR03-RAL-R61-2.01: Answers, if you try to do a Google search.

122
00:16:07.880 --> 00:16:13.299
STFC-RAL-CR03-RAL-R61-2.01: And the sad reality is that that is exactly what structural biologists are doing today.

123
00:16:13.770 --> 00:16:16.370
STFC-RAL-CR03-RAL-R61-2.01: Might take months to grind a crystal.

124
00:16:16.840 --> 00:16:26.340
STFC-RAL-CR03-RAL-R61-2.01: And then take it to the beam, collect the data set, and then proceed throughout the whole procedure, estimating parameters for the software that they're using, based on proof of spitting to that one data set.

125
00:16:28.010 --> 00:16:30.239
STFC-RAL-CR03-RAL-R61-2.01: Yeah, we don't even have 3 replicates here.

126
00:16:31.930 --> 00:16:34.050
STFC-RAL-CR03-RAL-R61-2.01: And this is a huge problem.

127
00:16:35.060 --> 00:16:40.019
STFC-RAL-CR03-RAL-R61-2.01: because it really raises questions about what the efficiency of the whole process is that we

128
00:16:40.160 --> 00:16:42.420
STFC-RAL-CR03-RAL-R61-2.01: are currently using structural biology.

129
00:16:42.520 --> 00:16:45.380
STFC-RAL-CR03-RAL-R61-2.01: whether it be crystallography, parallel echinoplasty.

130
00:16:46.180 --> 00:16:49.620
STFC-RAL-CR03-RAL-R61-2.01: This is something that we're dealing with.

131
00:16:50.950 --> 00:16:53.570
STFC-RAL-CR03-RAL-R61-2.01: It's acknowledged that good regularization can help.

132
00:16:53.680 --> 00:17:02.209
STFC-RAL-CR03-RAL-R61-2.01: It can be producing things more robust, less sensitive to noise, but it's not necessarily going to increase the efficiency. Still requires substantial data.

133
00:17:02.350 --> 00:17:05.490
STFC-RAL-CR03-RAL-R61-2.01: In order to get to a good estimate.

134
00:17:06.910 --> 00:17:09.620
STFC-RAL-CR03-RAL-R61-2.01: But if we can actually appropriately parameterize the problem.

135
00:17:10.329 --> 00:17:14.179
STFC-RAL-CR03-RAL-R61-2.01: Then we can improve not just robustness, but also efficiency.

136
00:17:14.579 --> 00:17:20.469
STFC-RAL-CR03-RAL-R61-2.01: acknowledging that unsuitable parameterization just trades variance bias, which is not good. So we've got to be careful.

137
00:17:20.819 --> 00:17:26.209
STFC-RAL-CR03-RAL-R61-2.01: But if we can do this, then maybe that solves this problem without me having one data set.

138
00:17:26.900 --> 00:17:33.209
STFC-RAL-CR03-RAL-R61-2.01: Indeed, if we've got hundreds of thousands of data sets deposited to protein data, maybe we can utilize that whole

139
00:17:33.780 --> 00:17:35.429
STFC-RAL-CR03-RAL-R61-2.01: resource and information.

140
00:17:35.850 --> 00:17:43.660
STFC-RAL-CR03-RAL-R61-2.01: In order to… appropriately parameterized system to actually estimate what parameters should be for given data set.

141
00:17:45.670 --> 00:17:51.060
STFC-RAL-CR03-RAL-R61-2.01: So as part of designing this process optimization framework, our objectives are

142
00:17:51.200 --> 00:17:57.209
STFC-RAL-CR03-RAL-R61-2.01: to improve the quality of output. So we want the results to be improved, robust and reproducible.

143
00:17:58.310 --> 00:18:06.530
STFC-RAL-CR03-RAL-R61-2.01: We also improve computational efficiency. So less computational waste wanted to be scalable, ideally transferable to different problems where possible.

144
00:18:07.420 --> 00:18:16.920
STFC-RAL-CR03-RAL-R61-2.01: And you want the user experience to improve, which means system works faster, easier, more collected. So we're not asking for much.

145
00:18:19.600 --> 00:18:22.729
STFC-RAL-CR03-RAL-R61-2.01: But nevertheless, let's give it a go, let's try.

146
00:18:23.560 --> 00:18:27.889
STFC-RAL-CR03-RAL-R61-2.01: I should clarify at this point that we are not talking about aiming to modify

147
00:18:28.010 --> 00:18:39.249
STFC-RAL-CR03-RAL-R61-2.01: the actual scientific methods, the internal algorithms, or thinking about computational acceleration, anything like that. We're simply talking about making the most out of existing software implementations.

148
00:18:39.400 --> 00:18:41.350
STFC-RAL-CR03-RAL-R61-2.01: By figuring out which.

149
00:18:42.080 --> 00:18:46.349
STFC-RAL-CR03-RAL-R61-2.01: parameter values which arguments use for a given data set.

150
00:18:48.050 --> 00:18:53.860
STFC-RAL-CR03-RAL-R61-2.01: Of course, there's the… What if we consider program parameters as random variables?

151
00:18:54.090 --> 00:18:56.520
STFC-RAL-CR03-RAL-R61-2.01: And optimize condition with probabilities.

152
00:18:58.440 --> 00:19:11.440
STFC-RAL-CR03-RAL-R61-2.01: So if we consider the expectation of parameters, overall data sets will that will give you a one fits all solution kind of akin to well, typically the program or interface defaults in software.

153
00:19:12.090 --> 00:19:22.709
STFC-RAL-CR03-RAL-R61-2.01: This is often heuristic programs deciding what these defaults should be based on very limited information and testing. And indeed, this is the most common approach in Ct. 4, at least.

154
00:19:25.380 --> 00:19:32.180
STFC-RAL-CR03-RAL-R61-2.01: The next best thing we could do is consider the expectation of these program parameters conditioned on a given data set.

155
00:19:33.310 --> 00:19:38.949
STFC-RAL-CR03-RAL-R61-2.01: or data set properties. So we're tuning these parameter estimates to properties of data.

156
00:19:39.240 --> 00:19:51.979
STFC-RAL-CR03-RAL-R61-2.01: And this is something that's quite uncommon in C64, and in a few cases where it has been done, it's typically hard-coded heuristics that are done to actually tune given parameters to dataset properties.

157
00:19:53.320 --> 00:19:57.719
STFC-RAL-CR03-RAL-R61-2.01: So what if we instead consider the whole probability distribution as opposed to the expectation.

158
00:19:58.670 --> 00:20:03.220
STFC-RAL-CR03-RAL-R61-2.01: So, consider… a full uncertainty.

159
00:20:03.340 --> 00:20:07.750
STFC-RAL-CR03-RAL-R61-2.01: aware representation of these grants of evidence.

160
00:20:08.220 --> 00:20:11.660
STFC-RAL-CR03-RAL-R61-2.01: Meaning that confidence in decision is also retained.

161
00:20:13.680 --> 00:20:25.819
STFC-RAL-CR03-RAL-R61-2.01: So the way that we are doing this is using Bayesian objective aggregation by marginal expected utility maximization, giving this function here, which I'll just break down to make it a little bit more bite-sized.

162
00:20:26.670 --> 00:20:38.359
STFC-RAL-CR03-RAL-R61-2.01: I personally like to look in terms of expectation notation. So we'll use this formula here. What we're trying to do is to choose a set of weights to balance objective

163
00:20:38.770 --> 00:20:39.470
STFC-RAL-CR03-RAL-R61-2.01: Okay.

164
00:20:40.030 --> 00:20:41.390
STFC-RAL-CR03-RAL-R61-2.01: Validation metrics.

165
00:20:42.900 --> 00:20:48.399
STFC-RAL-CR03-RAL-R61-2.01: The maximized score, which… could be different different applications.

166
00:20:48.670 --> 00:20:55.890
STFC-RAL-CR03-RAL-R61-2.01: associated with the expected set of prototype parameters. Y, where prototype parameters, what I'm calling here the

167
00:20:56.200 --> 00:20:59.539
STFC-RAL-CR03-RAL-R61-2.01: Alderman Servarga, Prime Minister Servarga, please assume.

168
00:21:00.940 --> 00:21:07.309
STFC-RAL-CR03-RAL-R61-2.01: Given expected coefficients, Beta, which is what we're trying to optimize as part of this procedure.

169
00:21:08.470 --> 00:21:10.930
STFC-RAL-CR03-RAL-R61-2.01: Corresponding to the given date of setup.

170
00:21:12.690 --> 00:21:18.059
STFC-RAL-CR03-RAL-R61-2.01: To try and make that a little bit clearer, I'm going to explain the opposite way around as well.

171
00:21:18.160 --> 00:21:20.010
STFC-RAL-CR03-RAL-R61-2.01: Why is that function down at the bottom?

172
00:21:20.160 --> 00:21:24.080
STFC-RAL-CR03-RAL-R61-2.01: And so, given a given data set, the…

173
00:21:25.170 --> 00:21:32.610
STFC-RAL-CR03-RAL-R61-2.01: We're asking, what are the coefficients? Beta, we need to estimate associated with predictors or independent variables. X.

174
00:21:32.980 --> 00:21:35.150
STFC-RAL-CR03-RAL-R61-2.01: from a given data set D.

175
00:21:35.740 --> 00:21:42.580
STFC-RAL-CR03-RAL-R61-2.01: tells the… versus hyperparameters. Y, That will result in the best score.

176
00:21:42.850 --> 00:21:46.619
STFC-RAL-CR03-RAL-R61-2.01: After having executed the process.

177
00:21:47.350 --> 00:21:52.980
STFC-RAL-CR03-RAL-R61-2.01: But we don't know how to score the process output, so just figure it out by estimating this weighting parameter.

178
00:21:53.540 --> 00:21:55.890
STFC-RAL-CR03-RAL-R61-2.01: So that's the formulation we're working with.

179
00:21:56.350 --> 00:22:05.530
STFC-RAL-CR03-RAL-R61-2.01: I appreciate that that would probably take a little bit of time to kind of properly digest. So instead, let's consider what this actually means in practice when training this.

180
00:22:07.010 --> 00:22:18.619
STFC-RAL-CR03-RAL-R61-2.01: So we're taking data set which in our particular case could be writing data bank, huge, publicly available data resource which we can split into training validation test sets.

181
00:22:19.110 --> 00:22:22.440
STFC-RAL-CR03-RAL-R61-2.01: And then we can use the training sets to train.

182
00:22:22.780 --> 00:22:23.690
STFC-RAL-CR03-RAL-R61-2.01: a model.

183
00:22:24.220 --> 00:22:31.589
STFC-RAL-CR03-RAL-R61-2.01: where the response is the process type of parameter values. So these, this is what we're trying to predict these optimal parameters for the software.

184
00:22:32.280 --> 00:22:39.940
STFC-RAL-CR03-RAL-R61-2.01: and the predictors will be derived properties from data. Could be the raw data.

185
00:22:41.480 --> 00:22:51.760
STFC-RAL-CR03-RAL-R61-2.01: Then we sample from posterior predictor and you stratify the sampling in order to predict which jobs, so which data sets and which sets of parameter values.

186
00:22:52.120 --> 00:22:59.269
STFC-RAL-CR03-RAL-R61-2.01: Would Maximi be informative to give us information about the high dimensional space?

187
00:22:59.620 --> 00:23:01.269
STFC-RAL-CR03-RAL-R61-2.01: So we can run jobs.

188
00:23:01.840 --> 00:23:05.660
STFC-RAL-CR03-RAL-R61-2.01: for those jobs to sample from Packet Parameter Space itself.

189
00:23:06.520 --> 00:23:07.650
STFC-RAL-CR03-RAL-R61-2.01: before then…

190
00:23:07.940 --> 00:23:19.400
STFC-RAL-CR03-RAL-R61-2.01: evaluating the outputs of those jobs. And typically you've got multiple competing validation metrics. So it could be that you've got something that represents the fit between model and data.

191
00:23:19.400 --> 00:23:29.789
STFC-RAL-CR03-RAL-R61-2.01: Something that represents either fixing, something that represents agreement with prior information, for example. And these need to somehow be aggregated into a single global score. So for this.

192
00:23:29.870 --> 00:23:34.740
STFC-RAL-CR03-RAL-R61-2.01: We're using technology from modern portfolio theory and economics.

193
00:23:35.180 --> 00:23:43.549
STFC-RAL-CR03-RAL-R61-2.01: In order to balance the risk and reward when doing such aggregation, tuning using the validation set or generalizability.

194
00:23:44.000 --> 00:23:44.800
STFC-RAL-CR03-RAL-R61-2.01: 5,

195
00:23:45.670 --> 00:23:52.580
STFC-RAL-CR03-RAL-R61-2.01: Before then, do multi-criteria decision analysis in order to get the phase optimal action corresponding to each data set.

196
00:23:52.920 --> 00:24:00.630
STFC-RAL-CR03-RAL-R61-2.01: So this allows us to estimate the response, so the hyperparameters for the next iteration repeat. Essentially, this system is learning.

197
00:24:00.920 --> 00:24:03.259
STFC-RAL-CR03-RAL-R61-2.01: What's the best parameters would be?

198
00:24:03.700 --> 00:24:05.619
STFC-RAL-CR03-RAL-R61-2.01: For each of the data sets.

199
00:24:06.170 --> 00:24:10.890
STFC-RAL-CR03-RAL-R61-2.01: based on… Hopefully low dimensionality.

200
00:24:11.010 --> 00:24:12.460
STFC-RAL-CR03-RAL-R61-2.01: predictor information.

201
00:24:13.630 --> 00:24:14.790
STFC-RAL-CR03-RAL-R61-2.01: So that's the idea.

202
00:24:15.510 --> 00:24:34.300
STFC-RAL-CR03-RAL-R61-2.01: That's what happens during training. But the idea is that once we created this model, it should be millisecond level, especially used. So from a user perspective, it's quite different. User perspective is that they've got their data set. And by producing derived information, we need to get predictors from that. At which point.

203
00:24:34.550 --> 00:24:37.719
STFC-RAL-CR03-RAL-R61-2.01: And just go to our framework, or the model that's been trained.

204
00:24:38.350 --> 00:24:47.630
STFC-RAL-CR03-RAL-R61-2.01: which can take additional prior information at that point. So if you've got a workflow controller user could override the system or provide expert guidance.

205
00:24:48.700 --> 00:24:55.360
STFC-RAL-CR03-RAL-R61-2.01: And then you would immediately get a set of what it thinks are the optimal parameters for that particular data set.

206
00:24:55.720 --> 00:24:56.730
STFC-RAL-CR03-RAL-R61-2.01: Awesome, man.

207
00:24:57.200 --> 00:24:59.780
STFC-RAL-CR03-RAL-R61-2.01: including uncertainties on those parameters.

208
00:25:00.140 --> 00:25:08.079
STFC-RAL-CR03-RAL-R61-2.01: estimate predicted outcomes. So predict what the final validation statistics would be after running the job.

209
00:25:08.560 --> 00:25:17.779
STFC-RAL-CR03-RAL-R61-2.01: including estimates of runtime and additional diagnostic information, so that you've got an idea about how reliable this information is, or at least how reliable

210
00:25:18.360 --> 00:25:21.009
STFC-RAL-CR03-RAL-R61-2.01: The system thinks this information is.

211
00:25:21.330 --> 00:25:25.519
STFC-RAL-CR03-RAL-R61-2.01: Should you be trusting it? Or is this outside of the domain of the training test?

212
00:25:27.130 --> 00:25:31.570
STFC-RAL-CR03-RAL-R61-2.01: At which point… You can access the executed process.

213
00:25:32.210 --> 00:25:40.899
STFC-RAL-CR03-RAL-R61-2.01: At which point, the user no longer has to think about doing some sort of brute force search with different parameter values, running lots of different jobs. It can just take

214
00:25:41.610 --> 00:25:46.249
STFC-RAL-CR03-RAL-R61-2.01: the single set of ops on premises. There should be a good job.

215
00:25:46.690 --> 00:25:48.459
STFC-RAL-CR03-RAL-R61-2.01: That's the idea.

216
00:25:48.970 --> 00:25:57.929
STFC-RAL-CR03-RAL-R61-2.01: So the vision is that the user should only ever have to learn from John in most cases, but not pathological or outside of the line of what we've seen already.

217
00:25:58.180 --> 00:26:07.100
STFC-RAL-CR03-RAL-R61-2.01: We're aiming for improved robustness and efficiency and hoping for a substantial reduction in computational wastage because we're doing all the computing up front.

218
00:26:07.310 --> 00:26:09.199
STFC-RAL-CR03-RAL-R61-2.01: User only has to run one job.

219
00:26:09.740 --> 00:26:16.490
STFC-RAL-CR03-RAL-R61-2.01: And we have got… many thousands of views around the world. So this this does kind of

220
00:26:18.840 --> 00:26:24.230
STFC-RAL-CR03-RAL-R61-2.01: the synergy with this type of developer with automated workflows. So, for example.

221
00:26:24.510 --> 00:26:30.929
STFC-RAL-CR03-RAL-R61-2.01: I have a look at macroelectric crystallography workflow. To be honest, it doesn't really matter exactly what these notes are.

222
00:26:31.060 --> 00:26:32.549
STFC-RAL-CR03-RAL-R61-2.01: The idea is this.

223
00:26:32.690 --> 00:26:42.310
STFC-RAL-CR03-RAL-R61-2.01: Data goes into the system, and then there's data processing, molecular replacement, and then there's multiple refinement stages that repeat until producing a final output.

224
00:26:45.450 --> 00:26:46.160
STFC-RAL-CR03-RAL-R61-2.01: Oh.

225
00:26:46.600 --> 00:26:50.489
STFC-RAL-CR03-RAL-R61-2.01: There are automated pipelines that try to automate this whole procedure.

226
00:26:51.380 --> 00:27:00.460
STFC-RAL-CR03-RAL-R61-2.01: And indeed, David's going to be talking about how to augment this with AI-driven decision making to improve such automated decision making.

227
00:27:01.080 --> 00:27:03.410
STFC-RAL-CR03-RAL-R61-2.01: What I've been talking about so far…

228
00:27:04.140 --> 00:27:14.290
STFC-RAL-CR03-RAL-R61-2.01: is actually something that optimizes the individual nodes within such a system. So we're trying to consider each of these 1, 2, 3, 4, in this case, different nodes, and try to optimize how

229
00:27:14.470 --> 00:27:16.169
STFC-RAL-CR03-RAL-R61-2.01: That's how this works.

230
00:27:17.960 --> 00:27:19.390
STFC-RAL-CR03-RAL-R61-2.01: But, ultimately.

231
00:27:20.210 --> 00:27:28.510
STFC-RAL-CR03-RAL-R61-2.01: Such a AI guided decision making pipeline could actually have mass control over the individual nodes within that workflow.

232
00:27:28.880 --> 00:27:33.949
STFC-RAL-CR03-RAL-R61-2.01: Indeed, parameters can be nudged by a prior, or overridden by marginalization.

233
00:27:35.560 --> 00:27:40.859
STFC-RAL-CR03-RAL-R61-2.01: And this is a bidirectional feedback. So the individual models can actually

234
00:27:40.960 --> 00:27:48.220
STFC-RAL-CR03-RAL-R61-2.01: provide the posterior distribution, posterior predicted distribution, and additional diagnostics which are natural language.

235
00:27:48.910 --> 00:27:50.639
STFC-RAL-CR03-RAL-R61-2.01: Iconic. It's lovely.

236
00:27:51.200 --> 00:27:53.640
STFC-RAL-CR03-RAL-R61-2.01: So this could be used to inform work.

237
00:27:55.270 --> 00:28:00.760
STFC-RAL-CR03-RAL-R61-2.01: So this work is funded by the Eddie Lovelace Centre, part of the Scientific Computing Department.

238
00:28:00.950 --> 00:28:10.679
STFC-RAL-CR03-RAL-R61-2.01: And the 1st demonstrator is being developed by Alice Kantinov, who is implementing the generic framework for this whole activity.

239
00:28:11.110 --> 00:28:14.630
STFC-RAL-CR03-RAL-R61-2.01: working on macromolecular structure refinement with several caps.

240
00:28:14.910 --> 00:28:18.250
STFC-RAL-CR03-RAL-R61-2.01: We've also got Milan Kumar, who's working on

241
00:28:18.490 --> 00:28:22.189
STFC-RAL-CR03-RAL-R61-2.01: applying this to prior 3 new construction with the line.

242
00:28:22.950 --> 00:28:30.919
STFC-RAL-CR03-RAL-R61-2.01: And Tarantulova has been find this Cristola data processing with dollars. That's along with Donna.

243
00:28:31.390 --> 00:28:34.419
STFC-RAL-CR03-RAL-R61-2.01: who I'm going to come say at the top.

244
00:28:34.860 --> 00:28:35.730
STFC-RAL-CR03-RAL-R61-2.01: No.

245
00:28:35.880 --> 00:28:38.660
STFC-RAL-CR03-RAL-R61-2.01: Okay, a new speaker and a new font.

246
00:28:38.930 --> 00:28:48.179
STFC-RAL-CR03-RAL-R61-2.01: Right? So what Rob's been talking about is all very generic and high level, kind of showing how what he's discussing can be applied in

247
00:28:48.350 --> 00:29:07.669
STFC-RAL-CR03-RAL-R61-2.01: really any context, if you're thinking about optimizing a… something you're doing regularly with these kind of data sets. What I'm going to try and do is talk about, as Bob said, thinking about it at different levels of abstraction, and get more of a flavor of how we're applying some crystallography, and what the actual kind of problems, the reasons we're trying to do this now, or we kind of have to do this now, basically.

248
00:29:07.800 --> 00:29:15.470
STFC-RAL-CR03-RAL-R61-2.01: So just to give some context, what crystallography is. So really, it's the study of molecules in the crystalline state. And this is one of the

249
00:29:15.580 --> 00:29:21.179
STFC-RAL-CR03-RAL-R61-2.01: if you like, one of the core microscopes, we have the study structure at a scale, and

250
00:29:21.320 --> 00:29:25.420
STFC-RAL-CR03-RAL-R61-2.01: It's a very old mature field, so there's many know-what prices associated with it.

251
00:29:25.670 --> 00:29:33.259
STFC-RAL-CR03-RAL-R61-2.01: even the United Nations, Europe, and what I'm trying to get across here is that it's a very mature field. So this is not us.

252
00:29:33.530 --> 00:29:46.180
STFC-RAL-CR03-RAL-R61-2.01: I mean, although there are so many scientific problems associated with this field, it's also very much an engineering problem. We have massive infrastructure on the backbone of crystallographic techniques, like things like diamond-type source analysis, etc.

253
00:29:46.660 --> 00:29:55.479
STFC-RAL-CR03-RAL-R61-2.01: Now, macromolecular gloss crystallography that Rob mentioned is specifically to study biological structures, and this is really a big part of the life sciences sector.

254
00:29:55.480 --> 00:30:09.360
STFC-RAL-CR03-RAL-R61-2.01: I just realized this is now dated, but DC no longer exists, but still… still applies, hopefully. But the key idea is, again, what I'm trying to get across is there's a mature field, massive amounts of data, massive infrastructure, and so…

255
00:30:09.460 --> 00:30:20.239
STFC-RAL-CR03-RAL-R61-2.01: When we're thinking about data processing, we have to think along the lines of thousands and thousands of data points, and really think at a much higher level, if you like.

256
00:30:20.790 --> 00:30:30.889
STFC-RAL-CR03-RAL-R61-2.01: So, as Rob mentioned, within the computational biology theme, CCP4 is one of the groups, and as he said, we have a software suite for processing.

257
00:30:31.190 --> 00:30:38.980
STFC-RAL-CR03-RAL-R61-2.01: data sets from macroelectric crystallography. And this is used all around the world, you have industry and academia. And so, when we're considering

258
00:30:39.080 --> 00:30:49.499
STFC-RAL-CR03-RAL-R61-2.01: how we optimize our software, this is being applied in a lot of places where things like cost really matters, and things like high throughput are really a big, big part of our kind of context.

259
00:30:49.500 --> 00:31:04.389
STFC-RAL-CR03-RAL-R61-2.01: If you don't really understand what lacrimal diffraction is, just kind of a subfield of crystallography, essentially the idea of firing a beam of particles whose wavelength is on the order of the distances between atoms in a given sub-crystalline sample.

260
00:31:04.410 --> 00:31:13.580
STFC-RAL-CR03-RAL-R61-2.01: This creates some nice patterns, and using a lot of maths, you can then understand what is the underlying structures that are responsible for generating those diffraction patterns.

261
00:31:14.170 --> 00:31:16.930
STFC-RAL-CR03-RAL-R61-2.01: And this, this process of,

262
00:31:17.060 --> 00:31:21.770
STFC-RAL-CR03-RAL-R61-2.01: processing these kind of data sets can be broken into these discrete steps.

263
00:31:22.130 --> 00:31:36.940
STFC-RAL-CR03-RAL-R61-2.01: for the kind of problems that we're thinking about. And so, we have data collection where we're looking at identifying where these crystals are, and which ones to use, showing where this nice little video over here, we're actually firing particles onto a sample, generating at them here.

264
00:31:36.940 --> 00:31:45.040
STFC-RAL-CR03-RAL-R61-2.01: We then go through the data and identify where are these spots in these kind of diffraction patterns, and we then generate a model.

265
00:31:45.080 --> 00:31:54.749
STFC-RAL-CR03-RAL-R61-2.01: that we think represents the symmetry of the spot distribution that we see. We refine that model, and then we then use that model to integrate over the data set. Basically.

266
00:31:55.720 --> 00:32:02.910
STFC-RAL-CR03-RAL-R61-2.01: Now, these steps within this kind of diffraction processing can be optimized individually, and indeed, as Rob was saying.

267
00:32:02.940 --> 00:32:21.890
STFC-RAL-CR03-RAL-R61-2.01: Machine learning is a big thing now, and so we are also just looking at, in these individual steps, outside of things like Bayesian optimization, can we just use machine learning tools in these areas? So, we have people like Marco Petrovic and Yetun Cha, who have been looking at, incorporating assets for future vision, for example, in the data collection.

268
00:32:21.890 --> 00:32:33.059
STFC-RAL-CR03-RAL-R61-2.01: So we can identify automatically where crystals are on our samples, and where good crystals are, or what are good and bad, potentially, data sets, and then guide our.

269
00:32:33.910 --> 00:32:44.779
STFC-RAL-CR03-RAL-R61-2.01: our machinery to move towards those automatically, rather than do this manually by hand, which is a key bottleneck in these kind of processes. Equally, you need to be looking at, Agentic data collection, so…

270
00:32:45.170 --> 00:32:50.799
STFC-RAL-CR03-RAL-R61-2.01: Obviously now, as Brock was saying, AI now is just as long as the large language models.

271
00:32:51.160 --> 00:33:04.010
STFC-RAL-CR03-RAL-R61-2.01: And there's a lot going on in places like Diamond Light Source now, where we're looking at not just asking things like Ford models, but developing our own local models with a predefined fixed tool set.

272
00:33:04.010 --> 00:33:11.470
STFC-RAL-CR03-RAL-R61-2.01: You can still use natural language to communicate your problem and what you want to do to process your data, but you can then

273
00:33:11.470 --> 00:33:18.440
STFC-RAL-CR03-RAL-R61-2.01: use a suite of predefined tools that the large language model selects based on its inference, essentially.

274
00:33:19.100 --> 00:33:30.769
STFC-RAL-CR03-RAL-R61-2.01: So that's one aspect of the things we're thinking about in terms of machine learning and AI. But as Rob's been saying, we want to consider the entire workflow. We don't want to think about just things in isolation. We need to consider.

275
00:33:30.870 --> 00:33:43.089
STFC-RAL-CR03-RAL-R61-2.01: how we optimize the entire way we're thinking about our data processing. So to think about that, I just want to very quickly take a short diverge to show where we're sitting in the context of the field. So.

276
00:33:43.430 --> 00:34:02.029
STFC-RAL-CR03-RAL-R61-2.01: when you're doing these kind of experiments, this might be at a synchrotron, you have multiple different, instruments, and historically, these might have all had their own software data processing. And then over time, generic software came about, and they could process data from multiple different, sources. But still, many of these exist, and they exist in different strengths.

277
00:34:02.080 --> 00:34:08.259
STFC-RAL-CR03-RAL-R61-2.01: different algorithms. If you're a user, you just want to get a key robust result for your data.

278
00:34:08.510 --> 00:34:25.739
STFC-RAL-CR03-RAL-R61-2.01: You might want to explore many of these and compare which ones are, allowing you to process your data, but this creates a lot of friction for a user, because it can be very hard to compare between software packages and understand why you're getting a different result in one rather than the other, even though using the same algorithm, for example.

279
00:34:25.940 --> 00:34:29.019
STFC-RAL-CR03-RAL-R61-2.01: So one of the things we did, which is kind of, in a sense.

280
00:34:29.420 --> 00:34:43.980
STFC-RAL-CR03-RAL-R61-2.01: preparing this field more for this kind of workflow machine learning AI stuff we're talking about, is we developed a ground space interface that enables you to visualize workflows from different software packages, kind of all in the browser.

281
00:34:44.650 --> 00:34:54.869
STFC-RAL-CR03-RAL-R61-2.01: And so this allows you to kind of abstract away all this working from packages, and you have a common interface where you can explore the packages and then compare like with like much more easily.

282
00:34:55.070 --> 00:35:11.110
STFC-RAL-CR03-RAL-R61-2.01: This allows you, for example, with this software package, you can run a given pipeline, and then another one, like, even pipeline, all within this package here. But more importantly, it allows you to actually move between the packages within these discrete steps. So we now have interfaces between all the different packages.

283
00:35:11.260 --> 00:35:22.229
STFC-RAL-CR03-RAL-R61-2.01: And as you can kind of imagine where this is leading to, is this opens up the potential space for exploring the optimal pathway for your data sets, far larger than we have been able to do before.

284
00:35:23.070 --> 00:35:26.589
STFC-RAL-CR03-RAL-R61-2.01: So going back to diffraction processing.

285
00:35:26.780 --> 00:35:35.220
STFC-RAL-CR03-RAL-R61-2.01: As I mentioned earlier, this is largely done in places like Diamond Light Source, and it's increasingly moving to very high throughput, and indeed with things like Diamond 2,

286
00:35:35.440 --> 00:35:44.039
STFC-RAL-CR03-RAL-R61-2.01: Single, beamlines, and these are all different instruments within Undiamond, all running experiments all the time, mostly automated,

287
00:35:44.040 --> 00:35:59.299
STFC-RAL-CR03-RAL-R61-2.01: a single one of these is hoping to produce about 10,000 data sets per day with Diamond 2. So this is just too much data to manually investigate. I needed to do this brute force investigation of maximizing the results, as Rob was saying.

288
00:35:59.560 --> 00:36:11.729
STFC-RAL-CR03-RAL-R61-2.01: I'd also argue it's kind of too much data to store and train. So, as Rob said, we have this protein data bank that has a large amount of data. It's obviously self-selected for data that has worked, and it's publishable.

289
00:36:11.820 --> 00:36:20.139
STFC-RAL-CR03-RAL-R61-2.01: And what we really want is to understand the full space of this problem of these kind of experiments. And so

290
00:36:20.570 --> 00:36:31.099
STFC-RAL-CR03-RAL-R61-2.01: We want to think about not just training from fixed data sets, but also thinking about online learning as well and bolting these onto all of the data processing that's already going on anyway.

291
00:36:32.370 --> 00:36:45.109
STFC-RAL-CR03-RAL-R61-2.01: And then the software that we're using is currently largely static. So if I use a piece of software to process a dataset, I might play around with it a bit and get a certain result. I then get a… another dataset.

292
00:36:45.280 --> 00:36:55.309
STFC-RAL-CR03-RAL-R61-2.01: the software hasn't changed between those two, data sets. I might have learned something as an instrument scientist, but again, with 10,000 data sets per day, I'm not going to be

293
00:36:55.690 --> 00:37:04.430
STFC-RAL-CR03-RAL-R61-2.01: I don't have time to manually learn those things. So what we want to do is, as Rob was saying, the software should be dynamically improving over time in response to the data.

294
00:37:04.700 --> 00:37:14.219
STFC-RAL-CR03-RAL-R61-2.01: And these these reasons down here again is what we're already doing. So we want to reduce the computational costs. So right now, this 10,000 data sets per day is kind of worse than it looks, because

295
00:37:14.490 --> 00:37:20.400
STFC-RAL-CR03-RAL-R61-2.01: For every data set, you will run an ensemble of pipelines, different software, different parameters.

296
00:37:20.750 --> 00:37:29.460
STFC-RAL-CR03-RAL-R61-2.01: Just hope one of them works, or choose the best one. So it's very brute force and wasteful. We want to reduce the amount of pipelines that are running.

297
00:37:29.580 --> 00:37:33.829
STFC-RAL-CR03-RAL-R61-2.01: And it uses information that's being lost, so most of the time.

298
00:37:34.070 --> 00:37:46.040
STFC-RAL-CR03-RAL-R61-2.01: yeah, we're just throwing all this data away, any bad data, any… all these different, observations we could be using, this is currently being thrown away, and then improving, kind of, what quality of data can actually be processed. So.

299
00:37:46.310 --> 00:37:56.820
STFC-RAL-CR03-RAL-R61-2.01: Right now, there's a limit on what we know we can process, but often this hasn't been fully explored. How can we stretch the software to allow us to process more poor quality data, for example?

300
00:37:58.390 --> 00:38:15.040
STFC-RAL-CR03-RAL-R61-2.01: So, thinking back to these steps that I was talking about earlier, of what you do when you're processing a diffraction dataset, and thinking about this through, like, a machine learning lens, and this idea of, kind of, optimizing a fixed pipeline. So, say you have a given software package, like this one here.

301
00:38:15.460 --> 00:38:17.499
STFC-RAL-CR03-RAL-R61-2.01: And we can think for each of these steps.

302
00:38:17.680 --> 00:38:21.730
STFC-RAL-CR03-RAL-R61-2.01: We have a certain… our data in a certain state at that point.

303
00:38:21.940 --> 00:38:33.709
STFC-RAL-CR03-RAL-R61-2.01: And also we are learning things about the data as we're going. So we get these kind of metrics that are showing in response to decisions I've made. I have some more information, and this leads further on down the line.

304
00:38:33.910 --> 00:38:50.970
STFC-RAL-CR03-RAL-R61-2.01: And then for a given node, we can say, well, we want to improve this particular aspect. And so we can do what what we're saying is using a Bayesian model, and indeed this is what Terence Slogo has been working on, and we have another colleague who's gonna continue working on this in the new year.

305
00:38:51.990 --> 00:38:59.330
STFC-RAL-CR03-RAL-R61-2.01: Another approach that we're also investigating looking at is a reinforcement learning approach. So Reinforcement learning.

306
00:38:59.460 --> 00:39:12.819
STFC-RAL-CR03-RAL-R61-2.01: you might have heard this in things like applied to problems in like video games or chess, for example. These are ideal kind of algorithms for sequential learning for

307
00:39:12.820 --> 00:39:24.869
STFC-RAL-CR03-RAL-R61-2.01: understanding that the best decision to make at a given state, given all the states that haven't before, and the previous decisions. And so this is very kind of complementary to Bayesian optimization. And I would say increasingly, these things

308
00:39:25.880 --> 00:39:37.590
STFC-RAL-CR03-RAL-R61-2.01: these old distinctions are kind of all merging together. It's often reinforcement learning models now. When you're exploring your potential, actions that you can do, you would use Bayesian inference to figure out the best

309
00:39:37.750 --> 00:39:45.459
STFC-RAL-CR03-RAL-R61-2.01: point in your action distribution to kind of access next. For example, equally, you can use the outcome of these kind of reinforcement learning models.

310
00:39:45.780 --> 00:39:55.240
STFC-RAL-CR03-RAL-R61-2.01: as a prior for phasing models as well. But they're kind of yeah, different kind of models we're playing around with. And what's nice about reinforcement learning models is you can learn this

311
00:39:55.450 --> 00:40:02.200
STFC-RAL-CR03-RAL-R61-2.01: complex, sequential, cumulative set of rewards. And often, we are not just thinking about

312
00:40:02.340 --> 00:40:13.829
STFC-RAL-CR03-RAL-R61-2.01: say, steps in a given pipeline being kind of correlated from one to the next. Also, the experiments that are running next can be correlated to previous ones. That can also inform, so we can think about models that are thinking

313
00:40:14.130 --> 00:40:18.650
STFC-RAL-CR03-RAL-R61-2.01: that level of abstraction rather than just steps in a given data processing pipeline.

314
00:40:19.940 --> 00:40:25.090
STFC-RAL-CR03-RAL-R61-2.01: So how does this actually work in practice? So I had no excuse.

315
00:40:25.410 --> 00:40:41.590
STFC-RAL-CR03-RAL-R61-2.01: So we have a this is a this is a plugin for that different package I showed before. We can create pipelines dynamically visually now, and the kind of nodes you can connect together are completely dependent on if the data states match up with each other.

316
00:40:41.970 --> 00:40:51.870
STFC-RAL-CR03-RAL-R61-2.01: And so this is recreating the steps in that diffraction pipeline I was showing before, and then we can click on a given node and then decide we want to optimize that node.

317
00:40:52.470 --> 00:41:05.779
STFC-RAL-CR03-RAL-R61-2.01: We then have a suite of machine learning models, reinforcement models, for example, that we can choose from. And then we can say we want to optimize this particular step with respect to these metrics, which we're getting from anything downstream.

318
00:41:05.960 --> 00:41:07.679
STFC-RAL-CR03-RAL-R61-2.01: In the connected pipeline.

319
00:41:07.830 --> 00:41:17.929
STFC-RAL-CR03-RAL-R61-2.01: And so here we're optimizing this node with a particular model against metrics from here, and then here we're optimizing this node now from much further down the line.

320
00:41:18.260 --> 00:41:28.340
STFC-RAL-CR03-RAL-R61-2.01: So this is a way you can use, for example, reinforcement learning models to again achieve a similar output to what Rob was saying of optimizing a given part of the chain.

321
00:41:30.830 --> 00:41:38.369
STFC-RAL-CR03-RAL-R61-2.01: So what's nice about so, as you can imagine, as we develop this so on a single, say, beamline at diamonds, we will develop

322
00:41:38.480 --> 00:41:42.640
STFC-RAL-CR03-RAL-R61-2.01: machine learning models that are optimizing different parts of these pipelines.

323
00:41:43.200 --> 00:41:48.149
STFC-RAL-CR03-RAL-R61-2.01: And then we can share these between mean lines, so suddenly we're expanding our,

324
00:41:48.540 --> 00:41:52.439
STFC-RAL-CR03-RAL-R61-2.01: Our training data, and we're just bolting these on to…

325
00:41:52.580 --> 00:41:56.170
STFC-RAL-CR03-RAL-R61-2.01: pipelines are already being run. So whenever a pipeline is being run.

326
00:41:57.010 --> 00:42:15.829
STFC-RAL-CR03-RAL-R61-2.01: the data processing is happening anyway, and we have machine learning models that are watching that processing, and then learning from, given this action, here's what happened, here's the reward, and then we can explore a bit around the decision that was made at that time, and we can use things like Bayesian inference to figure out the best way to do that, given what we know about the experiment.

327
00:42:16.140 --> 00:42:23.480
STFC-RAL-CR03-RAL-R61-2.01: So we can share between beamlines, and we do this, using this MLflow package that you might have heard of, so it's like an open source.

328
00:42:23.650 --> 00:42:27.639
STFC-RAL-CR03-RAL-R61-2.01: package for managing machine learning models, large language models.

329
00:42:28.390 --> 00:42:40.419
STFC-RAL-CR03-RAL-R61-2.01: monitoring the yeah, monitoring the sort of how well these models fall across different contexts, etc. So now we can start to develop an ecosystem of beamlines that are sharing

330
00:42:40.560 --> 00:42:45.960
STFC-RAL-CR03-RAL-R61-2.01: models between them for optimizing pipelines in different contexts. We kind of grow a suite of

331
00:42:46.140 --> 00:42:48.880
STFC-RAL-CR03-RAL-R61-2.01: making the software dynamic in these different interfaces.

332
00:42:49.240 --> 00:42:52.409
STFC-RAL-CR03-RAL-R61-2.01: As I said before, because of the work with GIF review.

333
00:42:52.640 --> 00:43:00.370
STFC-RAL-CR03-RAL-R61-2.01: We can now expand these pipelines beyond just a given software package. So we can say, we want to use this software package here.

334
00:43:00.660 --> 00:43:09.490
STFC-RAL-CR03-RAL-R61-2.01: another one here. We can also say for this particular node. Let's just use a machine learning model directly. Let's use something like resonance or

335
00:43:09.830 --> 00:43:19.399
STFC-RAL-CR03-RAL-R61-2.01: another, a convolutional neural network to approximate this traditional physics-based model. And as long as it matches the data state going in and out, we can just pop that into our flow chart.

336
00:43:19.780 --> 00:43:21.559
STFC-RAL-CR03-RAL-R61-2.01: as we would anything else.

337
00:43:22.160 --> 00:43:28.510
STFC-RAL-CR03-RAL-R61-2.01: So just as with these 10,000 data sets a day, we can't Visualize each one of those.

338
00:43:28.850 --> 00:43:31.050
STFC-RAL-CR03-RAL-R61-2.01: I would argue this, this, this…

339
00:43:31.270 --> 00:43:40.779
STFC-RAL-CR03-RAL-R61-2.01: the possible types of workflows you can do is too big to manually design yourself. So we have these software now where you can manually design these things, but I would argue equally

340
00:43:41.000 --> 00:43:42.479
STFC-RAL-CR03-RAL-R61-2.01: We want to consider…

341
00:43:42.750 --> 00:43:57.540
STFC-RAL-CR03-RAL-R61-2.01: adapting these pipelines for a given problem, again, in an automated way, rather than letting the user or the instrument BMI scientist, in this case, do this. So when we're thinking about it, the context of this is kind of the high level about this meta thing that Rob was talking about.

342
00:43:57.840 --> 00:44:03.660
STFC-RAL-CR03-RAL-R61-2.01: You can say, not just given a node, what's the best action I can do here? What's the best set of parameters?

343
00:44:03.820 --> 00:44:17.460
STFC-RAL-CR03-RAL-R61-2.01: what's the best algorithm I should be using? We can also say, given my data, what should my pipeline actually look like? So, the space is not just for software, it's kind of across the whole space of what parameters, what algorithm, what software, etc.

344
00:44:17.530 --> 00:44:33.439
STFC-RAL-CR03-RAL-R61-2.01: So we are now using reinforcement learning for this as well. And as you can imagine, this is where Reinforcement Learning is kind of ideal because you have to think about cumulative rewards across multiple sequential steps, which is really what reinforcement learning was really designed to do.

345
00:44:33.660 --> 00:44:38.789
STFC-RAL-CR03-RAL-R61-2.01: There are also other kinds of models that are very useful in this context. So things like

346
00:44:39.130 --> 00:44:41.420
STFC-RAL-CR03-RAL-R61-2.01: Goal oriented action planning or go.

347
00:44:41.600 --> 00:44:45.339
STFC-RAL-CR03-RAL-R61-2.01: which again is very popular in the video game world for like

348
00:44:45.800 --> 00:44:54.119
STFC-RAL-CR03-RAL-R61-2.01: you know, enemy artificial intelligence, for example. So here, if you know, like the 8 star algorithm for minimizing the distance.

349
00:44:54.170 --> 00:45:13.640
STFC-RAL-CR03-RAL-R61-2.01: to… for a given… the minimizing… minimum path for a given distance to a goal. Goal-oriented action planning that thinks about that in the context of rewards. So what's the minimum, or sorry, the maximum in this case, pathway to maximize reward across a complex space? And we can apply this in the same context, so…

350
00:45:13.900 --> 00:45:22.370
STFC-RAL-CR03-RAL-R61-2.01: at each node, we can say, what's my predicted reward for given actions? And again, we could use Bayesian inference for that part of the pipeline.

351
00:45:22.600 --> 00:45:32.830
STFC-RAL-CR03-RAL-R61-2.01: And we can build up a path using things like our planning to do that kind of thing as well. So that's the kind of things we're thinking about how to apply this at this high level of abstraction.

352
00:45:33.660 --> 00:45:37.459
STFC-RAL-CR03-RAL-R61-2.01: So the old fonts back in so it could kind of summarize.

353
00:45:37.620 --> 00:45:41.140
STFC-RAL-CR03-RAL-R61-2.01: what… how we're thinking about this. So, firstly, we're thinking about

354
00:45:41.520 --> 00:45:44.470
STFC-RAL-CR03-RAL-R61-2.01: Individual processes should always… should be

355
00:45:44.800 --> 00:45:53.730
STFC-RAL-CR03-RAL-R61-2.01: optimal and dynamically reacting to the data that we have, rather than just the user deciding how things should be… how things should be carried out.

356
00:45:53.970 --> 00:46:06.190
STFC-RAL-CR03-RAL-R61-2.01: And these workflows, they are… they are… we know they are correlated, and so we should be learning not just how to apply an individual node, but how to connect things together such that we're thinking about metrics all across the chain.

357
00:46:06.500 --> 00:46:16.929
STFC-RAL-CR03-RAL-R61-2.01: And this longer term goal is that the software is dynamic. It's not static. I should say we're not. We're not shoehorning machine learning into these software. We're not.

358
00:46:17.040 --> 00:46:26.310
STFC-RAL-CR03-RAL-R61-2.01: There's not a little AI agent popping up when you load the software now. This all sits above this in a separate framework that just influences how the software is used. So the software is still

359
00:46:26.780 --> 00:46:33.439
STFC-RAL-CR03-RAL-R61-2.01: Peter from machine learning. But we we are exploiting these tools to allow us to dynamically change how we use it.

360
00:46:33.660 --> 00:46:48.340
STFC-RAL-CR03-RAL-R61-2.01: And Rob summarized it very effectively here. Did you come up with this at the point? Was this catching you seeing it there? But yeah, you can automate the expertise rather than just the existing behaviour, which is, I think, a really good way of thinking about this. So we have

361
00:46:48.490 --> 00:46:58.399
STFC-RAL-CR03-RAL-R61-2.01: a very fixed engineering problem. We have a lot of data. We need to understand how to capture this data and how to exploit that at any different level of abstraction.

362
00:46:58.630 --> 00:47:01.470
STFC-RAL-CR03-RAL-R61-2.01: And yeah, that's it.

363
00:47:05.100 --> 00:47:09.720
STFC-RAL-CR03-RAL-R61-2.01: Thank you very much. It was very interesting. People need to have questions for you.

364
00:47:10.440 --> 00:47:24.740
STFC-RAL-CR03-RAL-R61-2.01: How do you avoid that you're missing edge cases? Thank you for the talk, and in general, I agree, having done BeamType at Diamond and other places, it needs user interfaces where we can help the user optimize their setup, definitely.

365
00:47:25.110 --> 00:47:31.200
STFC-RAL-CR03-RAL-R61-2.01: I'm… But how do you avoid that? You're if you're optimizing for, say, an average

366
00:47:31.320 --> 00:47:33.769
STFC-RAL-CR03-RAL-R61-2.01: outcome or the typical result.

367
00:47:33.910 --> 00:47:37.070
STFC-RAL-CR03-RAL-R61-2.01: How do you avoid not seeing the one that is special?

368
00:47:37.750 --> 00:47:39.150
STFC-RAL-CR03-RAL-R61-2.01: Do you want to stay or shall I?

369
00:47:39.160 --> 00:47:57.860
STFC-RAL-CR03-RAL-R61-2.01: Well, I can say, yeah, so from my perspective, that's, I would say, one of the benefits of this online learning aspect. So, we don't want… so, yeah, when we've approached… so we're working multiple beamlines with this kind of work, and all the data sets they're giving us, there's already been human hands on it, so it's self-selecting certain things, and so…

370
00:47:57.860 --> 00:48:14.250
STFC-RAL-CR03-RAL-R61-2.01: to best capture the space, we want to see everything that's happening, essentially, and make actions and response to those actions as possible. So, to me, bolting on this online learning, kind of like a watchdog setup, where you're just watching everything that happens and exploring in response to that.

371
00:48:14.250 --> 00:48:32.429
STFC-RAL-CR03-RAL-R61-2.01: with these Bayesian models that once you have a sense of the distribution on all these action spaces, you can kind of see where that is poorly explored. I think that to me is a is a good way of kind of going about that. Yeah, I think

372
00:48:33.670 --> 00:48:53.270
STFC-RAL-CR03-RAL-R61-2.01: There's 2 things. The risky of being user comes in and trusts your workflow because it now runs and it produces magic results. That's why I think it's important workflows and any sort of device that's coming through the system to take into account errors. We think about propagation given certainty estimates. So it's okay to give an estimate of what should be done.

373
00:48:53.950 --> 00:49:05.560
STFC-RAL-CR03-RAL-R61-2.01: as long as the confidence in that is presented as well. So that's where diagnostic information comes in, including knowing whether or not a given data set is.

374
00:49:06.180 --> 00:49:14.180
STFC-RAL-CR03-RAL-R61-2.01: is nicely well embedded within the training data that was used to develop that system, or whether actually, this is an edge case, because it literally hasn't been seen before.

375
00:49:14.520 --> 00:49:20.160
STFC-RAL-CR03-RAL-R61-2.01: at which point we could still produce prediction for that, but with the flag to be very careful.

376
00:49:21.720 --> 00:49:29.730
STFC-RAL-CR03-RAL-R61-2.01: Yeah, so the reinforcement learning algorithm, they're all policy gradient methods, so we are predicting distributions with those as well.

377
00:49:30.640 --> 00:49:32.000
STFC-RAL-CR03-RAL-R61-2.01: Well, I would say…

378
00:49:32.790 --> 00:49:37.959
STFC-RAL-CR03-RAL-R61-2.01: We're also… so, when you… when we are running this at, say, the Diamond Light Source.

379
00:49:38.130 --> 00:49:42.389
STFC-RAL-CR03-RAL-R61-2.01: sort of comparing it to the current way people are doing things so like

380
00:49:42.620 --> 00:49:59.410
STFC-RAL-CR03-RAL-R61-2.01: running it with default parameters, all the parameters the beamline scientists have chosen, for example. And if their prediction is far better than ours, I kind of like to think about it as, like, an airline kind of model. This is like a disaster. We need to learn the maximum amount from this case, because clearly our models haven't accounted for this kind of information. So.

381
00:49:59.450 --> 00:50:08.700
STFC-RAL-CR03-RAL-R61-2.01: Yeah, again, I think it comes back to just watching as much data as possible and having an understanding of the different distributions that you're working with there.

382
00:50:09.210 --> 00:50:11.340
STFC-RAL-CR03-RAL-R61-2.01: It's what it's gonna entail, edge cases.

383
00:50:15.300 --> 00:50:33.799
STFC-RAL-CR03-RAL-R61-2.01: It sort of relates to what you've been talking about with, having to have uncertainty estimates. I think in our field, we have a lot of people who are very excited about machine learning algorithms, and they spend huge training runs to get a point estimate out. How do you build in uncertainties to the kind of training run, so that you're

384
00:50:33.870 --> 00:50:36.030
STFC-RAL-CR03-RAL-R61-2.01: Inference can also produce uncertainty.

385
00:50:36.240 --> 00:50:45.279
STFC-RAL-CR03-RAL-R61-2.01: So I know exactly how to do that in Bayesian models. Could you comment in the context of machine learning? Well, yeah. So so machine learning that has been a

386
00:50:46.410 --> 00:50:54.279
STFC-RAL-CR03-RAL-R61-2.01: a problem that I'd say partly solved with rules of thumb in the kind of frequentist machine learning field. So one way of doing it is when you have things like

387
00:50:54.490 --> 00:51:14.659
STFC-RAL-CR03-RAL-R61-2.01: I mean, some of these methods are so old now, because I drop out in your, say, neural network model. So you're randomly dropping out nodes in your training. If you randomly drop out nodes in your inference as well, you're approximating an ensemble of those networks. And so then you can start to think, well, each of those is predicting something that's generating a distribution possible. So that's the kind of

388
00:51:15.800 --> 00:51:22.430
STFC-RAL-CR03-RAL-R61-2.01: at least that was the main way to do it when I was in my PhD. That's the main way of inferring uncertainty in those things. But then again, I would say.

389
00:51:22.700 --> 00:51:34.749
STFC-RAL-CR03-RAL-R61-2.01: yeah, a lot of these reinforcement learning methods. So I wish this policy gradient methods they are. They are aimed for a different distribution with a mean and a variance. So they are. They are from a different kind of philosophy.

390
00:51:34.980 --> 00:51:37.520
STFC-RAL-CR03-RAL-R61-2.01: Kind of leading towards the same,

391
00:51:38.440 --> 00:51:55.589
STFC-RAL-CR03-RAL-R61-2.01: idea of not predicting a single value, but a distribution as the kind of Bayesian approach. So, in the reinforcement learning space, I'd say it's much more tangible than, say, in supervised effort, I guess is what you're thinking about. Yeah, a lot of the conventional machine learning approaches simply didn't produce uncertainty estimates.

392
00:51:55.760 --> 00:52:02.779
STFC-RAL-CR03-RAL-R61-2.01: And I think that even when we have got uncertainty estimates, say, from the reinforcement learning exactly what those uncertainties correspond to.

393
00:52:02.950 --> 00:52:05.729
STFC-RAL-CR03-RAL-R61-2.01: The exact interpretation is extremely important.

394
00:52:05.940 --> 00:52:09.180
STFC-RAL-CR03-RAL-R61-2.01: thinking about whether or not all the errors are actually being propagated.

395
00:52:09.490 --> 00:52:14.670
STFC-RAL-CR03-RAL-R61-2.01: And so I think there's still some work to be done on these technologies in this area. It's still involving fear.

396
00:52:16.100 --> 00:52:18.120
STFC-RAL-CR03-RAL-R61-2.01: But at least it's heading in that direction.

397
00:52:19.150 --> 00:52:21.219
STFC-RAL-CR03-RAL-R61-2.01: Sure. Yeah, I'd say also.

398
00:52:21.320 --> 00:52:28.749
STFC-RAL-CR03-RAL-R61-2.01: So the general point, yeah, I think everyone's keen to jump to using a vision transform model or a convolutional neural network.

399
00:52:28.920 --> 00:52:36.939
STFC-RAL-CR03-RAL-R61-2.01: Just try and psychic learn the K nearest neighbors model often gets you 90% of the way there, and then you have much more tractability over

400
00:52:37.380 --> 00:52:51.419
STFC-RAL-CR03-RAL-R61-2.01: or understand how this model is performing. So things like a gouting process or a random forest, these things, although not as sexy as all these, you know, these models, they allow much more adaptability kind of off the bat, just from the way that they're designed.

401
00:52:51.680 --> 00:53:02.939
STFC-RAL-CR03-RAL-R61-2.01: That's 1 of the reasons why to go down the basin first, st so that we can have something that we understand causality about. We can interpret and then maybe replace components with machine learning based.

402
00:53:03.200 --> 00:53:04.660
STFC-RAL-CR03-RAL-R61-2.01: Technology documents.

403
00:53:07.550 --> 00:53:14.489
STFC-RAL-CR03-RAL-R61-2.01: When you're going down your dynamic learning route, can you… How do we extract knowledge?

404
00:53:15.450 --> 00:53:19.010
STFC-RAL-CR03-RAL-R61-2.01: In many ways, when we do machine learning, what we'd like to have is

405
00:53:19.300 --> 00:53:34.330
STFC-RAL-CR03-RAL-R61-2.01: the knowledge that is being trained into that somehow humanly comprehensively re-extracted. I think often we find that we found really, as soon as we go to deep neural networks or convolutionals, it starts getting really hazy about what is it actually doing.

406
00:53:35.220 --> 00:53:41.209
STFC-RAL-CR03-RAL-R61-2.01: And there's a big question. If you figure out how to run Diamond optimally, why would you try and get that out as a recipe?

407
00:53:42.490 --> 00:53:43.310
STFC-RAL-CR03-RAL-R61-2.01: Oh.

408
00:53:43.630 --> 00:53:50.700
STFC-RAL-CR03-RAL-R61-2.01: I suppose that is one of the nice things about the Bayesian approach, and one of the very difficult things about the dynamic optimization.

409
00:53:51.110 --> 00:54:02.390
STFC-RAL-CR03-RAL-R61-2.01: I guess you can get an answer for an individual data set and individual situation, but it's not the case that you can just write down a simple model on a page. It depends on the answer that you want.

410
00:54:02.480 --> 00:54:11.539
STFC-RAL-CR03-RAL-R61-2.01: Yeah, I mean, in a general, like, supervised neural network approach, there are ways of inverting the space, so you can almost explore the input space that would lead to a maximum

411
00:54:11.700 --> 00:54:13.150
STFC-RAL-CR03-RAL-R61-2.01: And,

412
00:54:13.320 --> 00:54:24.640
STFC-RAL-CR03-RAL-R61-2.01: There are ways of, you know, because it's a black box, you're sort of probing and then seeing the response, and you can probe around the values, you know, stability and things like that, but yeah, I think that's what we're saying.

413
00:54:25.110 --> 00:54:32.030
STFC-RAL-CR03-RAL-R61-2.01: the great thing about these Bayesian models, because often the things that in this diffraction case, in my diamond case.

414
00:54:32.310 --> 00:54:40.969
STFC-RAL-CR03-RAL-R61-2.01: the kind of things we're putting into these models will be things about the experiments that are physically tangible. And so from a Bayesian perspective, you can say.

415
00:54:41.050 --> 00:54:58.100
STFC-RAL-CR03-RAL-R61-2.01: how much of this had a weighting on these predictions and that kind of thing. So that's… that's why it's really useful to think about things in that context. Yeah, I think there's, like, two main areas where machine learning really has its own place here. One is where the system is just too complex to be able to guess.

416
00:54:58.100 --> 00:55:01.239
STFC-RAL-CR03-RAL-R61-2.01: Such as with these workflows that they've spent all about.

417
00:55:01.360 --> 00:55:05.639
STFC-RAL-CR03-RAL-R61-2.01: The other one is, once you've got everything you can out of interpretive model.

418
00:55:05.850 --> 00:55:08.110
STFC-RAL-CR03-RAL-R61-2.01: And then you want the additional explicits.

419
00:55:08.450 --> 00:55:14.609
STFC-RAL-CR03-RAL-R61-2.01: So at that point you've already got most of the interpretation, and then you're trying to fine tune your estimate.

420
00:55:14.990 --> 00:55:18.029
STFC-RAL-CR03-RAL-R61-2.01: But at that point, it's very difficult to know exactly where they're coming from.

421
00:55:24.250 --> 00:55:25.929
STFC-RAL-CR03-RAL-R61-2.01: Thank you for the wonderful talk.

422
00:55:26.190 --> 00:55:29.350
STFC-RAL-CR03-RAL-R61-2.01: So, I'm a relatively…

423
00:55:29.760 --> 00:55:38.660
STFC-RAL-CR03-RAL-R61-2.01: new to using machine learning, so it might be a bit of a elementary question. But looking from your, description about reinforced learning.

424
00:55:38.840 --> 00:55:39.680
STFC-RAL-CR03-RAL-R61-2.01: Oh.

425
00:55:40.110 --> 00:55:49.390
STFC-RAL-CR03-RAL-R61-2.01: What are the benefits compared to just using all RNNs to optimize on like a sequential which

426
00:55:49.920 --> 00:56:02.000
STFC-RAL-CR03-RAL-R61-2.01: Well, yeah, I would say a lot of these fields started separately, but they are increasingly, like, merging together. There's so many hybrid models, so I wouldn't think of these as

427
00:56:02.550 --> 00:56:08.660
STFC-RAL-CR03-RAL-R61-2.01: necessarily separate. I mean, the good thing about reinforcement learning is you don't have to have

428
00:56:08.830 --> 00:56:18.900
STFC-RAL-CR03-RAL-R61-2.01: a tangible mapping of one thing to another. So it can be a very… that's why it works in context of things like, I don't know, Bang Dota 2, or whatever, because it's very hard to say

429
00:56:19.700 --> 00:56:24.139
STFC-RAL-CR03-RAL-R61-2.01: A single action leads to this reward very far ahead in time.

430
00:56:24.600 --> 00:56:29.149
STFC-RAL-CR03-RAL-R61-2.01: That's where reinforcement learning kind of excels is where you have this kind of

431
00:56:29.470 --> 00:56:35.509
STFC-RAL-CR03-RAL-R61-2.01: loose or poorly understood mapping of how a given action leads to a response.

432
00:56:36.010 --> 00:56:48.749
STFC-RAL-CR03-RAL-R61-2.01: But yeah, again, I would say these things mix together. So a lot of supervised training of a model. You would do some reinforcement training. I could sort of say model. So these things all mix together. It's just different ways of

433
00:56:49.210 --> 00:57:02.809
STFC-RAL-CR03-RAL-R61-2.01: probing how to navigate this, this weight space of these very large, models. So, yeah, I wouldn't think of things as too separated these days, but there's so many combinations. So, in that case, would it be, like, a good idea to train

434
00:57:02.970 --> 00:57:09.279
STFC-RAL-CR03-RAL-R61-2.01: like, modularizer problem, train, like, multiple RNNs of each choices, and then optimize the

435
00:57:09.530 --> 00:57:16.379
STFC-RAL-CR03-RAL-R61-2.01: Results from those, with the whole Yes, absolutely. And so, yeah.

436
00:57:16.630 --> 00:57:21.150
STFC-RAL-CR03-RAL-R61-2.01: machine learning has in our in our fields been attempted for a while, I think.

437
00:57:21.370 --> 00:57:22.310
STFC-RAL-CR03-RAL-R61-2.01: RAM,

438
00:57:23.040 --> 00:57:31.500
STFC-RAL-CR03-RAL-R61-2.01: It's been difficult to get good results for that, partly because maybe, yes, we're going too much from here's my data, here's my very end results.

439
00:57:31.780 --> 00:57:34.850
STFC-RAL-CR03-RAL-R61-2.01: Now, let's let's optimize that. But if you

440
00:57:35.000 --> 00:57:51.859
STFC-RAL-CR03-RAL-R61-2.01: breaking that down into these nodes, or short-term rewards, as well as long-term rewards, and yeah, embedding smaller neural networks and that kind of thing, I think, yes, it's definitely a much better way of making the problem more attractive and easier to train in many cases.

441
00:57:52.230 --> 00:57:57.939
STFC-RAL-CR03-RAL-R61-2.01: Yeah, and in practice, it's quite hard to know what's going to work the best for a given case, so…

442
00:57:58.060 --> 00:58:04.259
STFC-RAL-CR03-RAL-R61-2.01: benchmarking. I try to figure out what happens, what works best for a given application as part of the process.

443
00:58:05.770 --> 00:58:06.770
STFC-RAL-CR03-RAL-R61-2.01: Pretty much.

444
00:58:09.050 --> 00:58:14.549
STFC-RAL-CR03-RAL-R61-2.01: Is that a question? On Zoom, maybe?

445
00:58:14.940 --> 00:58:16.530
STFC-RAL-CR03-RAL-R61-2.01: That's the wrong question.

446
00:58:18.060 --> 00:58:19.010
STFC-RAL-CR03-RAL-R61-2.01: Okay.

447
00:58:19.200 --> 00:58:23.989
STFC-RAL-CR03-RAL-R61-2.01: If there are no more questions, let's thank our speakers again.

448
00:58:28.050 --> 00:58:31.950
STFC-RAL-CR03-RAL-R61-2.01: We're going for lunch this year in the corridor in Thailand.

449
00:58:40.320 --> 00:59:04.159
STFC-RAL-CR03-RAL-R61-2.01: One of them was the one on your slide. Okay, very good. Excuse me, are the slides going to be uploaded on the page? Yes.

450
00:59:04.160 --> 00:59:11.419
STFC-RAL-CR03-RAL-R61-2.01: Obviously, you're not to say any of this umbrella stuff is good or bad.

